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

PropertyInfo.GetGetMethod 方法

2013/12/13

返回此属性的公共 get 访问器。

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

public MethodInfo GetGetMethod()

返回值

类型: System.Reflection.MethodInfo
如果 get 访问器存在并且是公共的,则为此属性的公共 get 访问器;否则为 null

异常条件
MethodAccessException

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

这是一种简便方法,等效于调用 GetGetMethod(Boolean) 方法重载并将 nonPublic 参数设置为 false

若要使用 GetGetMethod 方法,请先获取类 Type。从 Type 获取 PropertyInfo。从 PropertyInfo 使用 GetGetMethod 方法。

下面的示例演示了 GetGetMethod 方法的两个重载。本示例定义了一个公共属性和一个受保护属性。本示例使用 GetGetMethod()GetGetMethod(Boolean) 方法重载显示两个属性的 get 访问器。在第一种情况下,仅显示公共属性的 get 访问器。

说明注意:

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


using System;
using System.Reflection;

class Example
{
   // Define properties with different access levels.

   private string myCaption = "A Default caption";
   public string Caption   
   {
      get
      {
         return myCaption;
      }
   }

   private string myText = "Default text.";
   protected string Text   
   {
      get
      {
         return myText;
      }
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      // Get the PropertyInfo objects.
      PropertyInfo captionInfo = typeof(Example).GetProperty("Caption");
      PropertyInfo textInfo = 
         typeof(Example).GetProperty("Text", 
                                     BindingFlags.NonPublic | BindingFlags.Instance);

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

      // List the public get accessors.
      MethodInfo[] publicGetAccessors = { captionInfo.GetGetMethod(), 
                                          textInfo.GetGetMethod() };

      foreach (MethodInfo mi in publicGetAccessors)
      {
         if (mi == null)
         {
            outputBlock.Text += "No get accessor was found.\n";
         }
         else
         {
            outputBlock.Text += mi.ToString() + "\n";
         }
      }

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

      // List all get accessors.
      MethodInfo[] allGetAccessors = { captionInfo.GetGetMethod(true), 
                                       textInfo.GetGetMethod(true) };

      foreach( MethodInfo mi in allGetAccessors )
      {
         if (mi==null)
         {
            outputBlock.Text += "No get accessor was found.\n";
         }
         else
         {
            outputBlock.Text += mi.ToString() + "\n";
         }
      }
   }
}

/* This example produces the following output:

Public get accessors:
System.String get_Caption()
No get accessor was found.

All get accessors:
System.String get_Caption()
System.String get_Text()
 */


Windows Phone OS

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

Windows Phone

显示:
© 2014 Microsoft