PropertyInfo Class
Discovers the attributes of a property and provides access to property metadata.
System.Reflection::MemberInfo
System.Reflection::PropertyInfo
Microsoft.JScript::COMPropertyInfo
System.Reflection.Emit::PropertyBuilder
Assembly: mscorlib (in mscorlib.dll)
The PropertyInfo type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() | Attributes | Gets the attributes for this property. |
![]() ![]() ![]() | CanRead | Gets a value indicating whether the property can be read. |
![]() ![]() ![]() | CanWrite | Gets a value indicating whether the property can be written to. |
![]() ![]() ![]() | DeclaringType | Gets the class that declares this member. (Inherited from MemberInfo.) |
![]() ![]() ![]() | IsSpecialName | Gets a value indicating whether the property is the special name. |
![]() ![]() ![]() | MemberType | Gets a MemberTypes value indicating that this member is a property. (Overrides MemberInfo::MemberType.) |
![]() | MetadataToken | Gets a value that identifies a metadata element. (Inherited from MemberInfo.) |
![]() ![]() | Module | Gets the module in which the type that declares the member represented by the current MemberInfo is defined. (Inherited from MemberInfo.) |
![]() ![]() ![]() | Name | Gets the name of the current member. (Inherited from MemberInfo.) |
![]() ![]() ![]() | PropertyType | Gets the type of this property. |
![]() ![]() ![]() | ReflectedType | Gets the class object that was used to obtain this instance of MemberInfo. (Inherited from MemberInfo.) |
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | Equals | Returns a value that indicates whether this instance is equal to a specified object. (Overrides MemberInfo::Equals(Object).) In XNA Framework 3.0, this member is inherited from Object::Equals(Object). In Portable Class Library Portable Class Library, this member is inherited from 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.) |
![]() ![]() ![]() | GetAccessors() | Returns an array whose elements reflect the public get, set, and other accessors of the property reflected by the current instance. |
![]() ![]() ![]() | GetAccessors(Boolean) | Returns an array whose elements reflect the public and, if specified, non-public get, set, and other accessors of the property reflected by the current instance. |
![]() | GetConstantValue | Returns a literal value associated with the property by a compiler. |
![]() ![]() ![]() | GetCustomAttributes(Boolean) | When overridden in a derived class, returns an array of all custom attributes applied to this member. (Inherited from MemberInfo.) |
![]() ![]() ![]() | GetCustomAttributes(Type, Boolean) | When overridden in a derived class, returns an array of custom attributes applied to this member and identified by Type. (Inherited from MemberInfo.) |
![]() | GetCustomAttributesData | Returns a list of CustomAttributeData objects representing data about the attributes that have been applied to the target member. (Inherited from MemberInfo.) |
![]() ![]() ![]() | GetGetMethod() | Returns the public get accessor for this property. |
![]() ![]() ![]() | GetGetMethod(Boolean) | When overridden in a derived class, returns the public or non-public get accessor for this property. |
![]() ![]() ![]() | GetHashCode | Returns the hash code for this instance. (Overrides MemberInfo::GetHashCode().) In XNA Framework 3.0, this member is inherited from Object::GetHashCode(). In Portable Class Library Portable Class Library, this member is inherited from Object::GetHashCode(). |
![]() ![]() ![]() | GetIndexParameters | When overridden in a derived class, returns an array of all the index parameters for the property. |
![]() | GetOptionalCustomModifiers | Returns an array of types representing the optional custom modifiers of the property. |
![]() | GetRawConstantValue | Returns a literal value associated with the property by a compiler. |
![]() | GetRequiredCustomModifiers | Returns an array of types representing the required custom modifiers of the property. |
![]() ![]() ![]() | GetSetMethod() | Returns the public set accessor for this property. |
![]() ![]() ![]() | GetSetMethod(Boolean) | When overridden in a derived class, returns the set accessor for this property. |
![]() ![]() ![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() ![]() ![]() | GetValue(Object, array<Object>) | Returns the value of the property with optional index values for indexed properties. |
![]() ![]() | GetValue(Object, BindingFlags, Binder, array<Object>, CultureInfo) | When overridden in a derived class, returns the value of a property having the specified binding, index, and CultureInfo. |
![]() ![]() ![]() | IsDefined | 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. (Inherited from MemberInfo.) |
![]() ![]() ![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() ![]() ![]() | SetValue(Object, Object, array<Object>) | Sets the value of the property with optional index values for index properties. |
![]() ![]() | SetValue(Object, Object, BindingFlags, Binder, array<Object>, CultureInfo) | When overridden in a derived class, sets the property value for the given object to the given value. |
![]() ![]() ![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | Equality | Indicates whether two PropertyInfo objects are equal. |
![]() ![]() | Inequality | Indicates whether two PropertyInfo objects are not equal. |
| Name | Description | |
|---|---|---|
![]() ![]() | _MemberInfo::GetIDsOfNames | Maps a set of names to a corresponding set of dispatch identifiers. (Inherited from MemberInfo.) |
![]() ![]() | _MemberInfo::GetType | Gets a Type object representing the MemberInfo class. (Inherited from MemberInfo.) |
![]() ![]() | _MemberInfo::GetTypeInfo | Retrieves the type information for an object, which can then be used to get the type information for an interface. (Inherited from MemberInfo.) |
![]() ![]() | _MemberInfo::GetTypeInfoCount | Retrieves the number of type information interfaces that an object provides (either 0 or 1). (Inherited from MemberInfo.) |
![]() ![]() | _MemberInfo::Invoke | Provides access to properties and methods exposed by an object. (Inherited from MemberInfo.) |
![]() ![]() | _PropertyInfo::GetIDsOfNames | Maps a set of names to a corresponding set of dispatch identifiers. |
![]() ![]() | _PropertyInfo::GetType | Gets a Type object representing the PropertyInfo type. |
![]() ![]() | _PropertyInfo::GetTypeInfo | Retrieves the type information for an object, which can then be used to get the type information for an interface. |
![]() ![]() | _PropertyInfo::GetTypeInfoCount | Retrieves the number of type information interfaces that an object provides (either 0 or 1). |
![]() ![]() | _PropertyInfo::Invoke | Provides access to properties and methods exposed by an object. |
Properties are logically the same as fields. A property is a named aspect of an object's state whose value is typically accessible through get and set accessors. Properties may be read-only, in which case a set routine is not supported.
Note |
|---|
To determine whether a property is static, you must obtain the MethodInfo for the get or set accessor, by calling the GetGetMethod or the GetSetMethod method, and examine its IsStatic property. |
Several methods in this class assume that the get accessor and set accessor methods of a property have certain formats. The signatures of the get and set methods must match the following convention:
The return type of the get method and the last argument of the set method must be identical. This is the type of the property.
The get and set methods must have the same number, type, and order of indices.
If this format is not followed, the behavior of the GetValue and SetValue methods is undefined.
Calling ICustomAttributeProvider::GetCustomAttributes on PropertyInfo when the inherit parameter of GetCustomAttributes is true does not walk the type hierarchy. Use System::Attribute to inherit custom attributes.
Notes to InheritorsWhen you inherit from PropertyInfo, you must override the following members: GetValue, SetValue, GetAccessors, GetGetMethod, GetSetMethod, and GetIndexParameters.
This example shows how to use various reflection classes to analyze the metadata contained in an assembly.
Note |
|---|
This example generates about 55,000 lines of data, which you can redirect to a text file at the command prompt, as follows: example.exe > propertyinfo.txt |
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() //
- SecurityAction::InheritanceDemand
for full trust for inheritors. This class cannot be inherited by partially trusted code.
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

