导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

PropertyInfo 类

2013/12/13

发现属性的特性并提供对属性元数据的访问。

System.Object
  System.Reflection.MemberInfo
    System.Reflection.PropertyInfo

Namespace:  System.Reflection
程序集:  mscorlib(位于 mscorlib.dll 中)

声明
Public MustInherit Class PropertyInfo _
	Inherits MemberInfo

PropertyInfo 类型公开以下成员。

  名称说明
公共属性Attributes获取此属性的特性。
公共属性CanRead获取一个值,该值指示此属性是否可读。
公共属性CanWrite获取一个值,该值指示此属性是否可写。
公共属性CustomAttributes获取包含此成员的自定义特性的集合。 (从 MemberInfo 继承。)
公共属性DeclaringType获取声明该成员的类。 (从 MemberInfo 继承。)
公共属性GetMethod获取此属性的 get 访问器。
公共属性IsSpecialName获取一个值,该值指示编译器是否将该属性的名称识别为特殊名称。
公共属性MemberType获取一个 MemberTypes 值,该值指示此成员是属性。 (重写 MemberInfo.MemberType。)
公共属性MetadataToken获取一个值,该值标识元数据元素。 (从 MemberInfo 继承。)
公共属性Module获取一个模块,在该模块中已经定义一个类型,该类型用于声明由当前 MemberInfo 表示的成员。 (从 MemberInfo 继承。)
公共属性Name获取当前成员的名称。 (从 MemberInfo 继承。)
公共属性PropertyType获取此属性的类型。
公共属性ReflectedType获取用于获取 MemberInfo 的此实例的类对象。 (从 MemberInfo 继承。)
公共属性SetMethod获取此属性的 set 访问器。
返回顶部

  名称说明
公共方法Equals返回一个值,该值指示此实例是否与指定的对象相等。 (重写 MemberInfo.Equals(Object)。)
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法GetAccessors返回一个数组,其元素反射了由当前实例反射的属性的公共 getset 以及其他访问器。
公共方法GetAccessors(Boolean)返回一个数组,其元素反射了当前实例反射的属性的公共及非公共(如果指定)getset 以及其他访问器。
公共方法GetConstantValue由编译器返回与属性关联的文本值。
公共方法GetCustomAttributes(Boolean)在派生类中重写时,返回应用于此成员的所有自定义特性的数组。 (从 MemberInfo 继承。)
公共方法GetCustomAttributes(Type, Boolean)在派生类中重写时,返回应用于此成员并由 Type 标识的自定义特性的数组。 (从 MemberInfo 继承。)
公共方法GetGetMethod返回此属性的公共 get 访问器。
公共方法GetGetMethod(Boolean)当在派生类中重写时,返回此属性的公共或非公共 get 访问器。
公共方法GetHashCode返回此实例的哈希代码。 (重写 MemberInfo.GetHashCode。)
公共方法GetIndexParameters当在派生类中重写时,返回此属性的所有索引参数的数组。
公共方法GetRawConstantValue由编译器返回与属性关联的文本值。
公共方法GetSetMethod返回此属性的公共 set 访问器。
公共方法GetSetMethod(Boolean)当在派生类中重写时,返回此属性的 set 访问器。
公共方法GetType获取当前实例的 Type (从 Object 继承。)
公共方法GetValue(Object)返回指定对象的属性值。
公共方法GetValue(Object, Object())用索引化属性的可选索引值返回该属性的值。
公共方法GetValue(Object, BindingFlags, Binder, Object(), CultureInfo)在派生类中重写时,返回具有指定绑定、索引和 CultureInfo 的属性的值。
公共方法IsDefined在派生类中重写时,指示是否将指定类型或其派生类型的一个或多个特性应用于此成员。 (从 MemberInfo 继承。)
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法SetValue(Object, Object)设置指定对象的属性值。
公共方法SetValue(Object, Object, Object())用索引化属性的可选索引值设置指定对象的该属性值。
公共方法SetValue(Object, Object, BindingFlags, Binder, Object(), CultureInfo)当在派生类中重写时,将给定对象的该属性值设置为给定值,遵循指定的绑定约束、联编程序和区域性。
公共方法ToString返回一个字符串,它表示当前的对象。 (从 Object 继承。)
返回顶部

  名称说明
公共扩展方法GetCustomAttribute(Type)重载。 检索应用于指定的成员的指定类型的自定义特性。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute(Type, Boolean)重载。 检索应用于指定成员的指定类型的自定义特性,还可以选择检查该成员的上级。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute(Of T)重载。 检索应用于指定的成员的指定类型的自定义特性。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute(Of T)(Boolean)重载。 检索应用于指定成员的指定类型的自定义特性,还可以选择检查该成员的上级。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes重载。 检索应用于指定成员的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes(Type)重载。 检索应用于指定成员的指定类型的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes(Of T)重载。 检索应用于指定成员的指定类型的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes(Of T)(Boolean)重载。 检索应用于指定成员的指定类型的自定义特性的集合,还可以选择检查该成员的上级。 (由 CustomAttributeExtensions 定义。)
公共扩展方法IsDefined指示是否将指定类型的自定义特性应用于指定的成员。 (由 CustomAttributeExtensions 定义。)
返回顶部

属性在逻辑上与字段相同。属性是已命名的对象状态的一个方面,它的值通常可通过 getset 访问器访问。属性可能是只读的,这种情况下没有 set 访问器。

说明注意:

若要确定某个属性是否为 static,必须通过调用 GetGetMethodGetSetMethod 方法来获取 getset 访问器的 MethodInfo,并检查它的 IsStatic 属性。

PropertyInfo 调用 ICustomAttributeProvider.GetCustomAttributes 并将 inherit 参数指定为 true 时,不遍历类型层次结构。使用 Attribute.GetCustomAttributes(MemberInfo, Boolean) 方法可列出继承的自定义属性。但请注意,此方法只能找到从 System.Attribute 派生的那些继承的自定义属性。

下面的示例演示了如何使用反射获取索引属性的值。String.Chars 属性是 String 类的默认属性(在 C# 中为索引器)。

说明注意:

要运行此示例,请参见生成具有静态 Windows Phone TextBlock 控件的示例


Imports System.Reflection

Class Example

   Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock) 

        Dim test As String = "abcdefghijklmnopqrstuvwxyz"

        ' To retrieve the value of the indexed Chars property  using 
        ' reflection, create an instance of PropertyInfo for Chars.
        '
        Dim pinfo As PropertyInfo = GetType(String).GetProperty("Chars")

        ' To retrieve an instance property, the GetValue method
        ' requires the object whose property is being accessed, and 
        ' an array of objects representing the index values. 

        ' Get the seventh character in the test string. 
        ' Note that the index is zero-based.
        Dim indexArgs() As Object = { 6 }
        Dim value As Object = pinfo.GetValue(test, indexArgs)
        outputBlock.Text &= _
            String.Format("The character at index 6 is ""{0}""." & vbLf, value)

        ' Show the complete string, one character at a time.
        For i As Integer = 0 To test.Length - 1
            outputBlock.Text &= pinfo.GetValue(test, New Object() { i })
        Next
        outputBlock.Text &= vbLf

    End Sub

End Class

' This example produces the following output:
'
'The character at index 6 is "g".
'abcdefghijklmnopqrstuvwxyz


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

此类型是线程安全的。

显示:
© 2014 Microsoft