MemberInfo Class
![]() |
---|
The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience. |
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<T>() | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified member.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttribute<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<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.
using System; using System.Reflection; class Module1 { public static void Main() { // This variable holds the amount of indenting that // should be used when displaying each line of information. Int32 indent = 0; // Display information about the EXE assembly. Assembly a = typeof(Module1).Assembly; Display(indent, "Assembly identity={0}", a.FullName); Display(indent+1, "Codebase={0}", a.CodeBase); // Display the set of assemblies our assemblies reference. Display(indent, "Referenced assemblies:"); foreach (AssemblyName 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()))); } Display(indent, ""); // Display information about each assembly loading into this AppDomain. foreach (Assembly b in AppDomain.CurrentDomain.GetAssemblies()) { Display(indent, "Assembly: {0}", b); // Display information about each module of this assembly. foreach ( Module m in b.GetModules(true) ) { Display(indent+1, "Module: {0}", m.Name); } // Display information about each type exported from this assembly. indent += 1; foreach ( Type t in b.GetExportedTypes() ) { Display(0, ""); Display(indent, "Type: {0}", t); // For each type, show its members & their custom attributes. indent += 1; foreach (MemberInfo mi in t.GetMembers() ) { Display(indent, "Member: {0}", mi.Name); DisplayAttributes(indent, mi); // If the member is a method, display information about its parameters. if (mi.MemberType==MemberTypes.Method) { foreach ( ParameterInfo pi in ((MethodInfo) mi).GetParameters() ) { Display(indent+1, "Parameter: Type={0}, Name={1}", pi.ParameterType, pi.Name); } } // If the member is a property, display information about the property's accessor methods. if (mi.MemberType==MemberTypes.Property) { foreach ( MethodInfo am in ((PropertyInfo) mi).GetAccessors() ) { Display(indent+1, "Accessor method: {0}", am); } } } indent -= 1; } indent -= 1; } } // Displays the custom attributes applied to the specified member. public static void DisplayAttributes(Int32 indent, MemberInfo mi) { // Get the set of custom attributes; if none exist, just return. object[] attrs = mi.GetCustomAttributes(false); if (attrs.Length==0) {return;} // Display the custom attributes applied to this member. Display(indent+1, "Attributes:"); foreach ( object o in attrs ) { Display(indent+2, "{0}", o.ToString()); } } // Display a formatted string indented by the specified amount. public static void Display(Int32 indent, string format, params object[] param) { Console.Write(new string(' ', indent*2)); Console.WriteLine(format, param); } } //The output shown below is abbreviated. // //Assembly identity=ReflectionCS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null // Codebase=file:///C:/Documents and Settings/test/My Documents/Visual Studio 2005/Projects/Reflection/Reflection/obj/Debug/Reflection.exe //Referenced assemblies: // Name=mscorlib, Version=2.0.0.0, Culture=, PublicKey token=B7-7A-5C-56-19-34-E0-89 // //Assembly: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 // Module: mscorlib.dll // Module: mscorlib.dll // Module: mscorlib.dll // Module: mscorlib.dll // Module: mscorlib.dll // Module: mscorlib.dll // Module: mscorlib.dll // Module: mscorlib.dll // Module: mscorlib.dll // Module: mscorlib.dll // Module: mscorlib.dll // Module: mscorlib.dll // Module: mscorlib.dll // Module: mscorlib.dll // // Type: System.Object // Member: GetType // Member: ToString // Member: Equals // Parameter: Type=System.Object, Name=obj // Member: Equals // Parameter: Type=System.Object, Name=objA // Parameter: Type=System.Object, Name=objB // Member: ReferenceEquals // Attributes: // System.Runtime.ConstrainedExecution.ReliabilityContractAttribute // Parameter: Type=System.Object, Name=objA // Parameter: Type=System.Object, Name=objB // Member: GetHashCode // Member: .ctor // Attributes: // System.Runtime.ConstrainedExecution.ReliabilityContractAttribute // // Type: System.ICloneable // Member: Clone // // Type: System.Collections.IEnumerable // Member: GetEnumerator // Attributes: // System.Runtime.InteropServices.DispIdAttribute // // Type: System.Collections.ICollection // Member: CopyTo // Parameter: Type=System.Array, Name=array // Parameter: Type=System.Int32, Name=index // Member: get_Count // Member: get_SyncRoot // Member: get_IsSynchronized // Member: Count // Accessor method: Int32 get_Count() // Member: SyncRoot // Accessor method: System.Object get_SyncRoot() // Member: IsSynchronized // Accessor method: Boolean get_IsSynchronized() // // Type: System.Collections.IList // Member: get_Item // Parameter: Type=System.Int32, Name=index // Member: set_Item // Parameter: Type=System.Int32, Name=index // Parameter: Type=System.Object, Name=value // Member: Add // Parameter: Type=System.Object, Name=value // Member: Contains // Parameter: Type=System.Object, Name=value // Member: Clear // Member: get_IsReadOnly // Member: get_IsFixedSize // Member: IndexOf // Parameter: Type=System.Object, Name=value // Member: Insert // Parameter: Type=System.Int32, Name=index // Parameter: Type=System.Object, Name=value // Member: Remove // Parameter: Type=System.Object, Name=value // Member: RemoveAt // Parameter: Type=System.Int32, Name=index // Member: Item // Accessor method: System.Object get_Item(Int32) // Accessor method: Void set_Item(Int32, System.Object) // Member: IsReadOnly // Accessor method: Boolean get_IsReadOnly() // Member: IsFixedSize // Accessor method: Boolean get_IsFixedSize() // // Type: System.Array // Member: IndexOf // Parameter: Type=T[], Name=array // Parameter: Type=T, Name=value // Member: AsReadOnly // Parameter: Type=T[], Name=array // Member: Resize // Attributes: // System.Runtime.ConstrainedExecution.ReliabilityContractAttribute // Parameter: Type=T[]&, Name=array // Parameter: Type=System.Int32, Name=newSize // Member: BinarySearch // Attributes: // System.Runtime.ConstrainedExecution.ReliabilityContractAttribute // Parameter: Type=T[], Name=array // Parameter: Type=T, Name=value // Member: BinarySearch // Attributes: // System.Runtime.ConstrainedExecution.ReliabilityContractAttribute // Parameter: Type=T[], Name=array // Parameter: Type=T, Name=value // Parameter: Type=System.Collections.Generic.IComparer`1[T], Name=comparer
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.