<Serializable, ComVisible(True), ClassInterface(ClassInterfaceType.AutoDual)> _
Public Class [Object]
' Methods
Public Overridable Function Equals(ByVal obj As Object) As Boolean
Return Object.InternalEquals(Me, obj)
End Function
Public Shared Function Equals(ByVal objA As Object, ByVal objB As Object) As Boolean
Return ((objA Is objB) OrElse (((Not objA Is Nothing) AndAlso (Not objB Is Nothing)) AndAlso objA.Equals(objB)))
End Function
Private Sub FieldGetter(ByVal typeName As String, ByVal fieldName As String, ByRef val As Object)
val = Me.GetFieldInfo(typeName, fieldName).GetValue(Me)
End Sub
Private Sub FieldSetter(ByVal typeName As String, ByVal fieldName As String, ByVal val As Object)
Dim fieldInfo As FieldInfo = Me.GetFieldInfo(typeName, fieldName)
If fieldInfo.IsInitOnly Then
Throw New FieldAccessException(Environment.GetResourceString("FieldAccess_InitOnly"))
End If
Message.CoerceArg(val, fieldInfo.FieldType)
fieldInfo.SetValue(Me, val)
End Sub
<ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)> _
Protected Overrides Sub Finalize()
End Sub
Private Function GetFieldInfo(ByVal typeName As String, ByVal fieldName As String) As FieldInfo
Dim baseType As Type = Me.GetType
Do While (Not baseType Is Nothing)
If baseType.FullName.Equals(typeName) Then
Exit Do
End If
baseType = baseType.BaseType
Loop
If (baseType Is Nothing) Then
Throw New RemotingException(String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Remoting_BadType"), New Object() { typeName }))
End If
Dim field As FieldInfo = baseType.GetField(fieldName, (BindingFlags.Public Or (BindingFlags.Instance Or BindingFlags.IgnoreCase)))
If (field Is Nothing) Then
Throw New RemotingException(String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Remoting_BadField"), New Object() { fieldName, typeName }))
End If
Return field
End Function
Public Overridable Function GetHashCode() As Integer
Return Object.InternalGetHashCode(Me)
End Function
<MethodImpl(MethodImplOptions.InternalCall)> _
Public Function [GetType]() As Type
<MethodImpl(MethodImplOptions.InternalCall)> _
Friend Shared Function InternalEquals(ByVal objA As Object, ByVal objB As Object) As Boolean
<MethodImpl(MethodImplOptions.InternalCall)> _
Friend Shared Function InternalGetHashCode(ByVal obj As Object) As Integer
<MethodImpl(MethodImplOptions.InternalCall)> _
Protected Function MemberwiseClone() As Object
<ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)> _
Public Shared Function ReferenceEquals(ByVal objA As Object, ByVal objB As Object) As Boolean
Return (objA Is objB)
End Function
Public Overridable Function ToString() As String
Return Me.GetType.ToString
End Function
End Class