Individua gli attributi di una proprietà e consente di accedere ai relativi metadati.
System.Reflection.MemberInfo
System.Reflection.PropertyInfo
Microsoft.JScript.COMPropertyInfo
System.Reflection.Emit.PropertyBuilder
Spazio dei nomi: System.Reflection
Assembly: mscorlib (in mscorlib.dll)
<SerializableAttribute> _ <ComVisibleAttribute(True)> _ <ClassInterfaceAttribute(ClassInterfaceType.None)> _ <PermissionSetAttribute(SecurityAction.InheritanceDemand, Name := "FullTrust")> _ Public MustInherit Class PropertyInfo _ Inherits MemberInfo _ Implements _PropertyInfo
[SerializableAttribute] [ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType.None)] [PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")] public abstract class PropertyInfo : MemberInfo, _PropertyInfo
[SerializableAttribute] [ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType::None)] [PermissionSetAttribute(SecurityAction::InheritanceDemand, Name = L"FullTrust")] public ref class PropertyInfo abstract : public MemberInfo, _PropertyInfo
[<AbstractClass>] [<SerializableAttribute>] [<ComVisibleAttribute(true)>] [<ClassInterfaceAttribute(ClassInterfaceType.None)>] [<PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")>] type PropertyInfo = class inherit MemberInfo interface _PropertyInfo end
Il tipo PropertyInfo espone i seguenti membri.
| Nome | Descrizione | |
|---|---|---|
|
PropertyInfo | Inizializza una nuova istanza della classe PropertyInfo. |
| Nome | Descrizione | |
|---|---|---|
|
Attributes | Ottiene gli attributi per questa proprietà. |
|
CanRead | Ottiene un valore che indica se è possibile leggere la proprietà. |
|
CanWrite | Ottiene un valore che indica se la proprietà è modificabile. |
|
DeclaringType | Ottiene la classe che dichiara questo membro. (Ereditato da MemberInfo) |
|
IsSpecialName | Ottiene un valore che indica se la proprietà è il nome speciale. |
|
MemberType | Ottiene un valore MemberTypes che indica che questo membro è una proprietà. (Esegue l'override di MemberInfo.MemberType). |
|
MetadataToken | Ottiene un valore che identifica un elemento di metadati. (Ereditato da MemberInfo) |
|
Module | Ottiene il modulo in cui viene definito il tipo che dichiara il membro rappresentato dall'oggetto MemberInfo corrente. (Ereditato da MemberInfo) |
|
Name | Ottiene il nome del membro corrente. (Ereditato da MemberInfo) |
|
PropertyType | Ottiene il tipo della proprietà. |
|
ReflectedType | Ottiene l'oggetto classe utilizzato per ottenere questa istanza di MemberInfo. (Ereditato da MemberInfo) |
| Nome | Descrizione | |
|---|---|---|
|
Equals |
Restituisce un valore che indica se l'istanza è uguale a un oggetto specificato.
(Esegue l'override di MemberInfo.Equals(Object)). In XNA Framework 3.0 questo membro viene ereditato da Object.Equals(Object). In questo membro viene ereditato da Object.Equals(Object). |
|
Finalize | Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object) |
|
GetAccessors() | Restituisce una matrice i cui elementi riflettono i metodi pubblici get, set e altre funzioni di accesso della proprietà riflesse dall'istanza corrente. |
|
GetAccessors(Boolean) | Restituisce una matrice i cui elementi riflettono i metodi pubblici e, se si specifica, quelli non pubblici get, set e altre funzioni di accesso della proprietà riflesse dall'istanza corrente. |
|
GetConstantValue | Restituisce un valore letterale associato da un compilatore alla proprietà. |
|
GetCustomAttributes(Boolean) | Se sottoposto a override in una classe derivata, restituisce una matrice di tutti gli attributi personalizzati applicati a questo membro. (Ereditato da MemberInfo) |
|
GetCustomAttributes(Type, Boolean) | Se sottoposto a override in una classe derivata, restituisce una matrice di attributi personalizzati applicati a questo membro e identificati da Type. (Ereditato da MemberInfo) |
|
GetCustomAttributesData | Restituisce un elenco di oggetti CustomAttributeData che rappresentano i dati sugli attributi applicati al membro di destinazione. (Ereditato da MemberInfo) |
|
GetGetMethod() | Restituisce la funzione di accesso pubblica get per questa proprietà. |
|
GetGetMethod(Boolean) | Quando viene sottoposto a override in una classe derivata, restituisce la funzione di accesso get pubblica o non pubblica per la proprietà. |
|
GetHashCode |
Restituisce il codice hash per questa istanza.
(Esegue l'override di MemberInfo.GetHashCode()). In XNA Framework 3.0 questo membro viene ereditato da Object.GetHashCode(). In questo membro viene ereditato da Object.GetHashCode(). |
|
GetIndexParameters | Quando viene sottoposto a override in una classe derivata, restituisce una matrice di tutti i parametri di indice per la proprietà. |
|
GetOptionalCustomModifiers | Restituisce una matrice di tipi che rappresentano i modificatori personalizzati facoltativi della proprietà. |
|
GetRawConstantValue | Restituisce un valore letterale associato da un compilatore alla proprietà. |
|
GetRequiredCustomModifiers | Restituisce una matrice di tipi che rappresentano i modificatori personalizzati obbligatori della proprietà. |
|
GetSetMethod() | Restituisce la funzione di accesso pubblica set per questa proprietà. |
|
GetSetMethod(Boolean) | Quando viene sottoposto a override in una classe derivata, restituisce la funzione di accesso set per questa proprietà. |
|
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
|
GetValue(Object, Object[]) | Restituisce il valore della proprietà con valori di indice facoltativi per le proprietà indicizzate. |
|
GetValue(Object, BindingFlags, Binder, Object[], CultureInfo) | Quando viene sottoposto a override in una classe derivata, restituisce il valore di una proprietà con l'associazione, l'indice e l'oggetto CultureInfo specificati. |
|
IsDefined | Quando se ne effettua l'override in una classe derivata, indica se a questo membro sono applicati uno o più attributi del tipo specificato o dei tipi derivati. (Ereditato da MemberInfo) |
|
MemberwiseClone | Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object) |
|
SetValue(Object, Object, Object[]) | Imposta il valore della proprietà con valori di indice facoltativi per le proprietà dell'indice. |
|
SetValue(Object, Object, BindingFlags, Binder, Object[], CultureInfo) | Quando viene sottoposto a override in una classe derivata, imposta il valore della proprietà dell'oggetto specificato sul valore determinato. |
|
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| Nome | Descrizione | |
|---|---|---|
|
Equality | Indica se due oggetti PropertyInfo sono uguali o meno. |
|
Inequality | Indica se due oggetti PropertyInfo non sono uguali. |
| Nome | Descrizione | |
|---|---|---|
|
_MemberInfo.GetIDsOfNames | Esegue il mapping di un set di nomi a un set corrispondente di ID di invio. (Ereditato da MemberInfo) |
|
_MemberInfo.GetType | Ottiene un oggetto Type che rappresenta la classe MemberInfo. (Ereditato da MemberInfo) |
|
_MemberInfo.GetTypeInfo | Recupera le informazioni sul tipo relative a un oggetto che può quindi essere utilizzato per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da MemberInfo) |
|
_MemberInfo.GetTypeInfoCount | Recupera il numero delle interfacce di informazioni di tipo fornite da un oggetto (0 o 1). (Ereditato da MemberInfo) |
|
_MemberInfo.Invoke | Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da MemberInfo) |
|
_PropertyInfo.GetIDsOfNames | Esegue il mapping di un set di nomi a un set corrispondente di ID di invio. |
|
_PropertyInfo.GetType | Ottiene un oggetto Type che rappresenta il tipo PropertyInfo. |
|
_PropertyInfo.GetTypeInfo | Recupera le informazioni sui tipi per un oggetto, che può quindi essere utilizzato per ottenere le informazioni sui tipi per un'interfaccia. |
|
_PropertyInfo.GetTypeInfoCount | Recupera il numero delle interfacce di informazioni di tipo fornite da un oggetto (0 o 1). |
|
_PropertyInfo.Invoke | Fornisce l'accesso a proprietà e metodi esposti da un oggetto. |
Le proprietà sono logicamente equivalenti ai campi. Una proprietà è un aspetto denominato dello stato di un oggetto, il cui valore è generalmente accessibile tramite le funzioni di accesso get e set. Le proprietà possono essere di sola lettura, nel qual caso la funzione di accesso Set non è supportata.
Nota
|
|---|
|
Per stabilire se una proprietà è static, è necessario ottenere le MethodInfo per la funzione di accesso get o set, chiamando il metodo GetGetMethod o il metodo GetSetMethod ed esaminandone la proprietà IsStatic. |
Diversi metodi nella classe presuppongono che la funzione di accesso get e i metodi della funzione di accesso set di una proprietà abbiano determinati formati. Le firme dei metodi get e set devono corrispondere alla seguente convenzione.
-
Il tipo restituito dal metodo get e l'ultimo argomento del metodo set devono essere identici. Questo è il tipo della proprietà.
-
I metodi get e set devono avere lo stesso numero, tipo e ordine di indici.
Se questo formato non viene rispettato, il comportamento dei metodi GetValue e SetValue non è definito.
La chiamata del metodo ICustomAttributeProvider.GetCustomAttributes su PropertyInfo quando il parametro inherit di GetCustomAttributes è true non segue la gerarchia dei tipi. Utilizzare System.Attribute per ereditare gli attributi personalizzati.
Note per gli eredi
Quando si eredita da PropertyInfo, eseguire l'override dei seguenti membri: GetValue, SetValue, GetAccessors, GetGetMethod, GetSetMethod e GetIndexParameters.
In questo esempio viene illustrato come utilizzare varie classi reflection per analizzare i metadati contenuti in un assembly.
Nota
|
|---|
|
Con questo esempio vengono generate circa 55.000 righe di dati che è possibile reindirizzare a un file di testo dal prompt dei comandi, come segue: example.exe > propertyinfo.txt |
Imports System 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] = 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. 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() '
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
using namespace System; using namespace System::Reflection; static void Display(Int32 indent, String^ format, ... array<Object^>^param) { Console::Write("{0}", gcnew String (' ', indent)); Console::WriteLine(format, param); } // Displays the custom attributes applied to the specified member. static void DisplayAttributes(Int32 indent, MemberInfo^ mi) { // Get the set of custom attributes; if none exist, just return. array<Object^>^attrs = mi->GetCustomAttributes(false); if (attrs->Length==0) { return; } // Display the custom attributes applied to this member. Display(indent+1, "Attributes:"); for each ( Object^ o in attrs ) { Display(indent*2, "{0}", o); } } void main() { try { // 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}", gcnew array<Object^> {a->FullName}); Display(indent+1, "Codebase={0}", gcnew array<Object^> {a->CodeBase}); // Display the set of assemblies our assemblies reference. Display(indent, "Referenced assemblies:"); for each ( AssemblyName^ an in a->GetReferencedAssemblies() ) { Display(indent + 1, "Name={0}, Version={1}, Culture={2}, PublicKey token={3}", gcnew array<Object^> {an->Name, an->Version, an->CultureInfo, (BitConverter::ToString(an->GetPublicKeyToken()))}); } Display(indent, ""); // Display information about each assembly loading into this AppDomain. for each ( Assembly^ b in AppDomain::CurrentDomain->GetAssemblies()) { Display(indent, "Assembly: {0}", gcnew array<Object^> {b}); // Display information about each module of this assembly. for each ( Module^ m in b->GetModules(true) ) { Display(indent+1, "Module: {0}", gcnew array<Object^> {m->Name}); } // Display information about each type exported from this assembly. indent += 1; for each ( Type^ t in b->GetExportedTypes() ) { Display(0, ""); Display(indent, "Type: {0}", gcnew array<Object^> {t}); // For each type, show its members & their custom attributes. indent += 1; for each (MemberInfo^ mi in t->GetMembers() ) { Display(indent, "Member: {0}", gcnew array<Object^> {mi->Name}); DisplayAttributes(indent, mi); // If the member is a method, display information about its parameters. if (mi->MemberType==MemberTypes::Method) { for each ( ParameterInfo^ pi in (((MethodInfo^) mi)->GetParameters())) { Display(indent+1, "Parameter: Type={0}, Name={1}", gcnew array<Object^> {pi->ParameterType, pi->Name}); } } // If the member is a property, display information about the property's accessor methods. if (mi->MemberType==MemberTypes::Property) { for each ( MethodInfo^ am in (((PropertyInfo^) mi)->GetAccessors()) ) { Display(indent+1, "Accessor method: {0}", gcnew array<Object^> {am}); } } } // Display a formatted string indented by the specified amount. indent -= 1; } indent -= 1; } } catch (Exception^ e) { Console::WriteLine(e->Message); } } // 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() //
.NET Framework
Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supportato in: 4, 3.5 SP1Supportato in:
-
SecurityAction.InheritanceDemand
per l'attendibilità totale per gli eredi. Questa classe non può essere ereditata da codice parzialmente attendibile.
Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Questo tipo è thread-safe.
Nota