MemberInfo Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft Informationen zu den Attributen eines Mitglieds ab und bietet Zugriff auf Membermetadaten.
public ref class MemberInfo abstract
public ref class MemberInfo abstract : System::Reflection::ICustomAttributeProvider, System::Runtime::InteropServices::_MemberInfo
public ref class MemberInfo abstract : System::Reflection::ICustomAttributeProvider
public abstract class MemberInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public abstract class MemberInfo : System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._MemberInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class MemberInfo : System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._MemberInfo
public abstract class MemberInfo : System.Reflection.ICustomAttributeProvider
type MemberInfo = class
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
type MemberInfo = class
interface _MemberInfo
interface ICustomAttributeProvider
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MemberInfo = class
interface ICustomAttributeProvider
interface _MemberInfo
type MemberInfo = class
interface ICustomAttributeProvider
Public MustInherit Class MemberInfo
Public MustInherit Class MemberInfo
Implements _MemberInfo, ICustomAttributeProvider
Public MustInherit Class MemberInfo
Implements ICustomAttributeProvider
- Vererbung
-
MemberInfo
- Abgeleitet
- Attribute
- Implementiert
Beispiele
In diesem Beispiel wird gezeigt, wie Sie verschiedene Spiegelungsklassen verwenden, um die in einer Assembly enthaltenen Metadaten zu analysieren.
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
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()
'
Hinweise
Die MemberInfo Klasse ist die abstrakte Basisklasse für Klassen, die zum Abrufen von Informationen zu allen Membern einer Klasse verwendet werden (Konstruktoren, Ereignisse, Felder, Methoden und Eigenschaften).
Diese Klasse führt die grundlegenden Funktionen ein, die alle Member bereitstellen.
Hinweise für Ausführende
Wenn Sie von MemberInfo Ihnen erben, müssen Sie die folgenden Member außer Kraft setzen: GetCustomAttributes(Boolean) und IsDefined(Type, Boolean).
Konstruktoren
| Name | Beschreibung |
|---|---|
| MemberInfo() |
Initialisiert eine neue Instanz der MemberInfo-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| CustomAttributes |
Ruft eine Auflistung ab, die die benutzerdefinierten Attribute dieses Elements enthält. |
| DeclaringType |
Ruft die Klasse ab, die diesen Member deklariert. |
| MemberType |
Wenn eine abgeleitete Klasse überschrieben wird, wird ein MemberTypes Wert abgerufen, der den Typ des Elements angibt – Methode, Konstruktor, Ereignis usw. |
| MetadataToken |
Ruft einen Wert ab, der ein Metadatenelement identifiziert. |
| Module |
Ruft das Modul ab, in dem der Typ, der das durch die aktuelle MemberInfo Darstellung dargestellte Element deklariert, definiert ist. |
| Name |
Ruft den Namen des aktuellen Elements ab. |
| ReflectedType |
Ruft das Klassenobjekt ab, das zum Abrufen dieser Instanz von |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Gibt einen Wert zurück, der angibt, ob diese Instanz einem angegebenen Objekt entspricht. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
| GetCustomAttributes(Boolean) |
Wenn eine abgeleitete Klasse außer Kraft gesetzt wird, wird ein Array aller benutzerdefinierten Attribute zurückgegeben, die auf dieses Element angewendet werden. |
| GetCustomAttributes(Type, Boolean) |
Wenn eine abgeleitete Klasse überschrieben wird, wird ein Array von benutzerdefinierten Attributen zurückgegeben, die auf dieses Element angewendet und durch Typediese identifiziert werden. |
| GetCustomAttributesData() |
Gibt eine Liste von CustomAttributeData Objekten zurück, die Daten zu den Attributen darstellen, die auf das Zielelement angewendet wurden. |
| GetHashCode() |
Gibt den Hashcode für diesen instance zurück. |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ermittelt die Attribute eines Mitglieds und bietet Zugriff auf Membermetadaten. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| HasSameMetadataDefinitionAs(MemberInfo) |
Ruft Informationen zu den Attributen eines Mitglieds ab und bietet Zugriff auf Membermetadaten. |
| IsDefined(Type, Boolean) |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird angegeben, ob mindestens ein Attribut des angegebenen Typs oder seiner abgeleiteten Typen auf dieses Element angewendet wird. |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Operatoren
| Name | Beschreibung |
|---|---|
| Equality(MemberInfo, MemberInfo) |
Gibt an, ob zwei MemberInfo Objekte gleich sind. |
| Inequality(MemberInfo, MemberInfo) |
Gibt an, ob zwei MemberInfo Objekte nicht gleich sind. |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| _MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. |
| _MemberInfo.GetType() |
Ruft ein Type Objekt ab, das die MemberInfo Klasse darstellt. |
| _MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können. |
| _MemberInfo.GetTypeInfoCount(UInt32) |
Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). |
| _MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Bietet Zugriff auf Eigenschaften und Methoden, die von einem Objekt verfügbar gemacht werden. |
| ICustomAttributeProvider.GetCustomAttributes(Boolean) |
Gibt ein Array aller benutzerdefinierten Attribute zurück, die für dieses Element definiert sind, ohne benannte Attribute oder ein leeres Array, wenn keine benutzerdefinierten Attribute vorhanden sind. |
| ICustomAttributeProvider.GetCustomAttributes(Type, Boolean) |
Gibt ein Array von benutzerdefinierten Attributen zurück, die für dieses Element definiert sind, identifiziert nach Typ oder ein leeres Array, wenn keine benutzerdefinierten Attribute dieses Typs vorhanden sind. |
| ICustomAttributeProvider.IsDefined(Type, Boolean) |
Gibt an, ob eine oder mehrere Instanzen dieses |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetCustomAttribute(MemberInfo, Type, Boolean) |
Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs ab, der auf ein angegebenes Element angewendet wird, und überprüft optional die Vorgänger dieses Elements. |
| GetCustomAttribute(MemberInfo, Type) |
Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs ab, das auf ein angegebenes Element angewendet wird. |
| GetCustomAttribute<T>(MemberInfo, Boolean) |
Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs ab, der auf ein angegebenes Element angewendet wird, und überprüft optional die Vorgänger dieses Elements. |
| GetCustomAttribute<T>(MemberInfo) |
Ruft ein benutzerdefiniertes Attribut eines angegebenen Typs ab, das auf ein angegebenes Element angewendet wird. |
| GetCustomAttributes(MemberInfo, Boolean) |
Ruft eine Auflistung von benutzerdefinierten Attributen ab, die auf ein angegebenes Element angewendet werden, und überprüft optional die Vorgänger dieses Elements. |
| GetCustomAttributes(MemberInfo, Type, Boolean) |
Ruft eine Auflistung von benutzerdefinierten Attributen eines angegebenen Typs ab, die auf ein angegebenes Element angewendet werden, und überprüft optional die Vorgänger dieses Elements. |
| GetCustomAttributes(MemberInfo, Type) |
Ruft eine Auflistung von benutzerdefinierten Attributen eines angegebenen Typs ab, die auf ein angegebenes Element angewendet werden. |
| GetCustomAttributes(MemberInfo) |
Ruft eine Auflistung von benutzerdefinierten Attributen ab, die auf ein angegebenes Element angewendet werden. |
| GetCustomAttributes<T>(MemberInfo, Boolean) |
Ruft eine Auflistung von benutzerdefinierten Attributen eines angegebenen Typs ab, die auf ein angegebenes Element angewendet werden, und überprüft optional die Vorgänger dieses Elements. |
| GetCustomAttributes<T>(MemberInfo) |
Ruft eine Auflistung von benutzerdefinierten Attributen eines angegebenen Typs ab, die auf ein angegebenes Element angewendet werden. |
| IsDefined(MemberInfo, Type, Boolean) |
Gibt an, ob benutzerdefinierte Attribute eines angegebenen Typs auf ein angegebenes Element angewendet werden und optional auf seine Vorgänger angewendet werden. |
| IsDefined(MemberInfo, Type) |
Gibt an, ob benutzerdefinierte Attribute eines angegebenen Typs auf ein angegebenes Element angewendet werden. |
Gilt für:
Threadsicherheit
Dieser Typ ist threadsicher.