MemberInfo Class
Obtains information about the attributes of a member and provides access to member metadata.
Assembly: mscorlib (in mscorlib.dll)
System.Reflection.MemberInfo
System.Reflection.EventInfo
System.Reflection.FieldInfo
System.Reflection.MethodBase
System.Reflection.PropertyInfo
System.Type
| Name | Description | |
|---|---|---|
![]() | MemberInfo() | Initializes a new instance of the MemberInfo class. |
| Name | Description | |
|---|---|---|
![]() | CustomAttributes | Gets a collection that contains this member's custom attributes. |
![]() | DeclaringType | Gets the class that declares this member. |
![]() | MemberType | When overridden in a derived class, gets a MemberTypes value indicating the type of the member — method, constructor, event, and so on. |
![]() | MetadataToken | Gets a value that identifies a metadata element. |
![]() | Module | Gets the module in which the type that declares the member represented by the current MemberInfo is defined. |
![]() | Name | Gets the name of the current member. |
![]() | ReflectedType | Gets the class object that was used to obtain this instance of MemberInfo. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Returns a value that indicates whether this instance is equal to a specified object.(Overrides Object.Equals(Object).) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetCustomAttributes(Boolean) | When overridden in a derived class, returns an array of all custom attributes applied to this member. |
![]() | GetCustomAttributes(Type, Boolean) | When overridden in a derived class, returns an array of custom attributes applied to this member and identified by Type. |
![]() | GetCustomAttributesData() | Returns a list of CustomAttributeData objects representing data about the attributes that have been applied to the target member. |
![]() | GetHashCode() | Returns the hash code for this instance.(Overrides Object.GetHashCode().) |
![]() | GetType() | |
![]() | IsDefined(Type, Boolean) | When overridden in a derived class, indicates whether one or more attributes of the specified type or of its derived types is applied to this member. |
![]() | MemberwiseClone() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | Equality(MemberInfo, MemberInfo) | Indicates whether two MemberInfo objects are equal. |
![]() ![]() | Inequality(MemberInfo, MemberInfo) | Indicates whether two MemberInfo objects are not equal. |
| Name | Description | |
|---|---|---|
![]() ![]() | _MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) | Maps a set of names to a corresponding set of dispatch identifiers. |
![]() ![]() | _MemberInfo.GetType() | Gets a Type object representing the MemberInfo class. |
![]() ![]() | _MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr) | Retrieves the type information for an object, which can then be used to get the type information for an interface. |
![]() ![]() | _MemberInfo.GetTypeInfoCount(UInt32) | Retrieves the number of type information interfaces that an object provides (either 0 or 1). |
![]() ![]() | _MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) | Provides access to properties and methods exposed by an object. |
| Name | Description | |
|---|---|---|
![]() | GetCustomAttribute(Type) | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified member.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttribute(Type, Boolean) | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttribute(Of T)() | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified member.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttribute(Of T)(Boolean) | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified member, and optionally inspects the ancestors of that member.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttributes() | Overloaded. Retrieves a collection of custom attributes that are applied to a specified member.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttributes(Type) | Overloaded. Retrieves a collection of custom attributes of a specified type that are applied to a specified member.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttributes(Of T)(Boolean) | Overloaded. Retrieves a collection of custom attributes of a specified type that are applied to a specified member, and optionally inspects the ancestors of that member.(Defined by CustomAttributeExtensions.) |
![]() | IsDefined(Type) | Overloaded. Indicates whether custom attributes of a specified type are applied to a specified member.(Defined by CustomAttributeExtensions.) |
The MemberInfo class is the abstract base class for classes used to obtain information about all members of a class (constructors, events, fields, methods, and properties).
This class introduces the basic functionality that all members provide.
Notes to Inheritors:
When you inherit from MemberInfo you must override the following members: GetCustomAttributes and IsDefined.
This example shows how to use various reflection classes to analyze the metadata contained in an assembly.
Imports System.Reflection Module Module1 Sub Main() ' This variable holds the amount of indenting that ' should be used when displaying each line of information. Dim indent As Int32 = 0 ' Display information about the EXE assembly. Dim a As Assembly = GetType(Module1).Assembly Display(indent, "Assembly identity={0}", a.FullName) Display(indent + 1, "Codebase={0}", a.CodeBase) ' Display the set of assemblies our assemblies reference. Dim an As AssemblyName Display(indent, "Referenced assemblies:") For Each an In a.GetReferencedAssemblies() Display(indent + 1, "Name={0}, Version={1}, Culture={2}, PublicKey token={3}", _ an.Name, an.Version, an.CultureInfo.Name, BitConverter.ToString(an.GetPublicKeyToken)) Next Display(indent, "") ' Display information about each assembly loading into this AppDomain. For Each a In AppDomain.CurrentDomain.GetAssemblies() Display(indent, "Assembly: {0}", a) ' Display information about each module of this assembly. Dim m As [Module] For Each m In a.GetModules(True) Display(indent + 1, "Module: {0}", m.Name) Next ' Display information about each type exported from this assembly. Dim t As Type indent += 1 For Each t In a.GetExportedTypes() Display(0, "") Display(indent, "Type: {0}", t) ' For each type, show its members & their custom attributes. Dim mi As MemberInfo indent += 1 For Each mi In t.GetMembers() Display(indent, "Member: {0}", mi.Name) DisplayAttributes(indent, mi) ' If the member is a method, display information about its parameters. Dim pi As ParameterInfo If mi.MemberType = MemberTypes.Method Then For Each pi In CType(mi, MethodInfo).GetParameters() Display(indent + 1, "Parameter: Type={0}, Name={1}", pi.ParameterType, pi.Name) Next End If ' If the member is a property, display information about the property's accessor methods. If mi.MemberType = MemberTypes.Property Then Dim am As MethodInfo For Each am In CType(mi, PropertyInfo).GetAccessors() Display(indent + 1, "Accessor method: {0}", am) Next End If Next indent -= 1 Next indent -= 1 Next End Sub ' Displays the custom attributes applied to the specified member. Sub DisplayAttributes(ByVal indent As Int32, ByVal mi As MemberInfo) ' Get the set of custom attributes; if none exist, just return. Dim attrs() As Object = mi.GetCustomAttributes(False) If attrs.Length = 0 Then Return ' Display the custom attributes applied to this member. Display(indent + 1, "Attributes:") Dim o As Object For Each o In attrs Display(indent + 2, "{0}", o.ToString()) Next End Sub ' Display a formatted string indented by the specified amount. Sub Display(ByVal indent As Int32, ByVal format As String, ByVal ParamArray params() As Object) Console.Write(New String(" "c, indent * 2)) Console.WriteLine(format, params) End Sub End Module 'The output shown below is abbreviated. ' 'Assembly identity=Reflection, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null ' Codebase=file:///C:/Reflection.exe 'Referenced assemblies: ' Name=mscorlib, Version=1.0.5000.0, Culture=, PublicKey token=B7-7A-5C-56-19-34-E0-89 ' Name=Microsoft.VisualBasic, Version=7.0.5000.0, Culture=, PublicKey token=B0-3F-5F-7F-11-D5-0A-3A ' 'Assembly: mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ' Module: mscorlib.dll ' Module: prc.nlp ' Module: prcp.nlp ' Module: ksc.nlp ' Module: ctype.nlp ' Module: xjis.nlp ' Module: bopomofo.nlp ' Module: culture.nlp ' Module: region.nlp ' Module: sortkey.nlp ' Module: charinfo.nlp ' Module: big5.nlp ' Module: sorttbls.nlp ' Module: l_intl.nlp ' Module: l_except.nlp ' ' Type: System.Object ' Member: GetHashCode ' Member: Equals ' Parameter: Type=System.Object, Name=obj ' Member: ToString ' Member: Equals ' Parameter: Type=System.Object, Name=objA ' Parameter: Type=System.Object, Name=objB ' Member: ReferenceEquals ' Parameter: Type=System.Object, Name=objA ' Parameter: Type=System.Object, Name=objB ' Member: GetType ' Member: .ctor ' ' Type: System.ICloneable ' Member: Clone ' ' Type: System.Collections.IEnumerable ' Member: GetEnumerator ' Attributes: ' System.Runtime.InteropServices.DispIdAttribute ' ' Type: System.Collections.ICollection ' Member: get_IsSynchronized ' Member: get_SyncRoot ' Member: get_Count ' Member: CopyTo ' Parameter: Type=System.Array, Name=array ' Parameter: Type=System.Int32, Name=index ' Member: Count ' Accessor method: Int32 get_Count() ' Member: SyncRoot ' Accessor method: System.Object get_SyncRoot() ' Member: IsSynchronized ' Accessor method: Boolean get_IsSynchronized() '
for full trust for inheritors. This class cannot be inherited by partially trusted code.
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
This type is thread safe.






