Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
PropertyInfo-Klasse
Ermittelt die Attribute einer Eigenschaft und bietet Zugriff auf die Metadaten der Eigenschaft.
System.Reflection.MemberInfo
System.Reflection.PropertyInfo
Microsoft.JScript.COMPropertyInfo
System.Reflection.Emit.PropertyBuilder
Assembly: mscorlib (in mscorlib.dll)
Der PropertyInfo-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
PropertyInfo | Initialisiert eine neue Instanz der PropertyInfo-Klasse. |
| Name | Beschreibung | |
|---|---|---|
|
Attributes | Ruft die Attribute für diese Eigenschaft ab. |
|
CanRead | Ruft einen Wert ab, der angibt, ob die Eigenschaft gelesen werden kann. |
|
CanWrite | Ruft einen Wert ab, der angibt, ob in die Eigenschaft geschrieben werden kann. |
|
DeclaringType | Ruft die Klasse ab, die diesen Member deklariert. (Von MemberInfo geerbt.) |
|
IsSpecialName | Ruft einen Wert ab, der angibt, ob es sich bei der Eigenschaft um den besonderen Namen handelt. |
|
MemberType | Ruft einen MemberTypes-Wert ab, der angibt, dass dieser Member eine Eigenschaft ist. (Überschreibt MemberInfo.MemberType.) |
|
MetadataToken | Ruft einen Wert ab, der ein Metadatenelement identifiziert. (Von MemberInfo geerbt.) |
|
Module | Ruft das Modul ab, in dem der Typ definiert ist, der den von der aktuellen MemberInfo-Klasse dargestellten Member deklariert. (Von MemberInfo geerbt.) |
|
Name | Ruft den Namen des aktuellen Members ab. (Von MemberInfo geerbt.) |
|
PropertyType | Ruft den Typ dieser Eigenschaft ab. |
|
ReflectedType | Ruft das Klassenobjekt ab, mit dem diese Instanz von MemberInfo abgerufen wurde. (Von MemberInfo geerbt.) |
| Name | Beschreibung | |
|---|---|---|
|
Equals |
Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.
(Überschreibt MemberInfo.Equals(Object).) In XNA Framework 3.0 wird dieser Member von Object.Equals(Object). In wird dieser Member von Object.Equals(Object). |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
GetAccessors() | Gibt ein Array zurück, dessen Elemente den öffentlichen get-Accessor, set-Accessor und andere Accessoren der Eigenschaft reflektieren, die von der aktuellen Instanz reflektiert wird. |
|
GetAccessors(Boolean) | Gibt ein Array zurück, dessen Elemente den öffentlichen und, sofern angegeben, den nicht öffentlichen get-Accessor, set-Accessor und andere Accessoren der Eigenschaft reflektieren, die von der aktuellen Instanz reflektiert wird. |
|
GetConstantValue | Gibt einen literalen Wert zurück, der der Eigenschaft von einem Compiler zugeordnet wurde. |
|
GetCustomAttributes(Boolean) | Gibt beim Überschreiben in einer abgeleiteten Klasse ein Array mit allen benutzerdefinierten Attributen zurück, die auf diesen Member angewendet wurden. (Von MemberInfo geerbt.) |
|
GetCustomAttributes(Type, Boolean) | Gibt beim Überschreiben in einer abgeleiteten Klasse ein Array mit benutzerdefinierten Attributen zurück, die auf diesen Member angewendet und von Type angegeben wurden. (Von MemberInfo geerbt.) |
|
GetCustomAttributesData | Gibt eine Liste von CustomAttributeData-Objekten zurück, die Daten über die für das Ziel übernommenen Attribute darstellen. (Von MemberInfo geerbt.) |
|
GetGetMethod() | Gibt den öffentlichen get-Accessor für diese Eigenschaft zurück. |
|
GetGetMethod(Boolean) | Gibt beim Überschreiben in einer abgeleiteten Klasse den öffentlichen oder nicht öffentlichen get-Accessor für diese Eigenschaft zurück. |
|
GetHashCode |
Gibt den Hashcode für diese Instanz zurück.
(Überschreibt MemberInfo.GetHashCode().) In XNA Framework 3.0 wird dieser Member von Object.GetHashCode(). In wird dieser Member von Object.GetHashCode(). |
|
GetIndexParameters | Gibt beim Überschreiben in einer abgeleiteten Klasse ein Array aller Indexparameter für die Eigenschaft zurück. |
|
GetOptionalCustomModifiers | Gibt ein Array von Typen zurück, die die optionalen benutzerdefinierten Modifizierer der Eigenschaft darstellen. |
|
GetRawConstantValue | Gibt einen literalen Wert zurück, der der Eigenschaft von einem Compiler zugeordnet wurde. |
|
GetRequiredCustomModifiers | Gibt ein Array von Typen zurück, die die erforderlichen benutzerdefinierten Modifizierer der Eigenschaft darstellen. |
|
GetSetMethod() | Gibt den öffentlichen set-Accessor für diese Eigenschaft zurück. |
|
GetSetMethod(Boolean) | Gibt beim Überschreiben in einer abgeleiteten Klasse den set-Accessor für diese Eigenschaft zurück. |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
GetValue(Object, Object[]) | Gibt den Wert der Eigenschaft mit optionalen Indexwerten für indizierte Eigenschaften zurück. |
|
GetValue(Object, BindingFlags, Binder, Object[], CultureInfo) | Gibt beim Überschreiben in einer abgeleiteten Klasse den Wert einer Eigenschaft mit der angegebenen Bindung, dem angegebenen Index und der angegebenen CultureInfo zurück. |
|
IsDefined | Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob ein oder mehrere Attribute des angegebenen Typs oder seiner abgeleiteten Typen auf diesen Member angewendet werden. (Von MemberInfo geerbt.) |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
SetValue(Object, Object, Object[]) | Legt den Wert der Eigenschaft mit optionalen Indexwerten für Indexeigenschaften fest. |
|
SetValue(Object, Object, BindingFlags, Binder, Object[], CultureInfo) | Legt beim Überschreiben in einer abgeleiteten Klasse den Eigenschaftswert für das angegebene Objekt auf den angegebenen Wert fest. |
|
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
| Name | Beschreibung | |
|---|---|---|
|
Equality | Gibt an, ob zwei PropertyInfo-Objekte gleich sind. |
|
Inequality | Gibt an, ob zwei PropertyInfo-Objekte ungleich sind. |
| Name | Beschreibung | |
|---|---|---|
|
_MemberInfo.GetIDsOfNames | Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von MemberInfo geerbt.) |
|
_MemberInfo.GetType | Ruft ein Type-Objekt ab, das die MemberInfo-Klasse darstellt. (Von MemberInfo geerbt.) |
|
_MemberInfo.GetTypeInfo | Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können. (Von MemberInfo geerbt.) |
|
_MemberInfo.GetTypeInfoCount | Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von MemberInfo geerbt.) |
|
_MemberInfo.Invoke | Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von MemberInfo geerbt.) |
|
_PropertyInfo.GetIDsOfNames | Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. |
|
_PropertyInfo.GetType | Ruft ein Type-Objekt ab, das den PropertyInfo-Typ darstellt. |
|
_PropertyInfo.GetTypeInfo | Ruft die Typinformationen für ein Objekt ab, die dann zum Abrufen der Typinformationen für eine Schnittstelle verwendet werden können. |
|
_PropertyInfo.GetTypeInfoCount | Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). |
|
_PropertyInfo.Invoke | Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. |
Eigenschaften sind logisch Feldern gleich. Eine Eigenschaft ist ein benannter Aspekt des Zustands eines Objekts, auf dessen Wert i. d. R. über die get-Accessoren und die set-Accessoren zugegriffen wird. Eigenschaften können schreibgeschützt sein. In diesem Fall wird eine set-Routine nicht unterstützt.
Hinweis
|
|---|
|
Um zu bestimmen, ob eine Eigenschaft static ist, müssen Sie die MethodInfo des get-Accessors oder des set-Accessors abrufen, indem Sie die GetGetMethod-Methode oder die GetSetMethod-Methode aufrufen und die IsStatic-Eigenschaft untersuchen. |
Bei mehreren Methoden in dieser Klasse wird davon ausgegangen, dass die get-Accessormethode und die set-Accessormethode einer Eigenschaft über bestimmte Formate verfügen. Die Signaturen der get-Methode und der set-Methode müssen der folgenden Konvention entsprechen:
-
Der Rückgabetyp der get-Methode und das letzte Argument der set-Methode müssen identisch sein. Dies ist der Typ der Eigenschaft.
-
Die get-Methode und die set-Methode müssen über die gleiche Anzahl, den gleichen Typ und die gleiche Reihenfolge von Indizes verfügen.
Wenn dieses Format nicht eingehalten wird, ist das Verhalten der GetValue-Methode und der SetValue-Methode undefiniert.
Wenn der inherit-Parameter von GetCustomAttributes den Wert true hat, wird beim Aufruf von ICustomAttributeProvider.GetCustomAttributes für PropertyInfo die Typhierarchie nicht durchlaufen. Verwenden Sie System.Attribute, um benutzerdefinierte Attribute zu vererben.
Hinweise zur Vererbung
Wenn Sie PropertyInfo vererben, müssen Sie die folgenden Member überschreiben: GetValue, SetValue, GetAccessors, GetGetMethod, GetSetMethod und GetIndexParameters.
In diesem Beispiel wird die Verwendung verschiedener Reflektionsklassen zur Analyse der in einer Assembly enthaltenen Metadaten veranschaulicht.
Hinweis
|
|---|
|
Dieses Beispiel generiert ca. 55.000 Datenzeilen, die wie folgt in eine Textdatei an der Eingabeaufforderung umgeleitet werden können: example.exe > propertyinfo.txt |
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 = System.Reflection.Assembly.GetExecutingAssembly(); 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
-
SecurityAction.InheritanceDemand
für volle Vertrauenswürdigkeit für Erben. Diese Klasse kann nicht von teilweise vertrauenswürdigem Code geerbt werden.
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Hinweis