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

PropertyInfo.GetAccessors 方法

2013/12/13

返回一个数组,其元素反射了由当前实例反射的属性的公共 getset 以及其他访问器。

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

public MethodInfo[] GetAccessors()

返回值

类型: System.Reflection.MethodInfo []
如果找到访问器,此方法将返回一个包含当前实例反射的属性的公共 getset 以及其他访问器的数组;否则,此方法将返回包含 0(零)个元素的数组。

异常条件
MethodAccessException

应用程序代码尝试访问此成员后期绑定,例如通过使用 Type.InvokeMember 方法。

下面的示例演示了 GetAccessors 方法的两个重载。该示例定义了一个具有公共 get 访问器和受保护的 set 访问器的属性。即,该属性只能由派生类设置。本示例使用 GetAccessors() 方法重载显示该属性的公共访问器,使用 GetAccessors(Boolean) 方法重载显示该属性的所有访问器。

说明注意:

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


using System.Reflection;

class Example
{
   // Define a property that has a public get accessor and a protected set
   // accessor. That is, the property can only be set by classes that 
   // derive from Example.
   private string myCaption = "A Default caption";
   public string Caption   
   {
      get
      {
         return myCaption;
      }

      protected set
      {
         if (myCaption!=value)
         {
            myCaption = value;
         }
      }
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      // Get the PropertyInfo.
      PropertyInfo captionInfo = typeof(Example).GetProperty("Caption");

      outputBlock.Text += "Public accessors:\n";

      // List the public accessors.
      foreach( MethodInfo mi in captionInfo.GetAccessors() )
      {
         outputBlock.Text += mi.ToString() + "\n";
      }

      outputBlock.Text += "\nAll accessors:\n";

      // List all accessors.
      foreach( MethodInfo mi in captionInfo.GetAccessors(true) )
      {
         outputBlock.Text += mi.ToString() + "\n";
      }
   }
}

/* This example produces the following output:

Public accessors:
System.String get_Caption()

All accessors:
System.String get_Caption()
Void set_Caption(System.String)
 */


Windows Phone OS

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

Windows Phone

显示:
© 2015 Microsoft