エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

PropertyInfo.GetGetMethod メソッド

2013/12/12

このプロパティのパブリックな get アクセサーを取得します。

Namespace:  System.Reflection
アセンブリ:  mscorlib (mscorlib.dll 内)

public MethodInfo GetGetMethod()

戻り値

型: System.Reflection.MethodInfo
get アクセサーが存在し、パブリックである場合は、このプロパティのパブリックな get アクセサー、それ以外の場合は null

例外条件
MethodAccessException

アプリケーション コードが、Type.InvokeMember メソッドなどを使用して、このメンバーに遅延バインディングでアクセスしようとしています。

このメソッドは、nonPublic パラメーターに false を設定して GetGetMethod(Boolean) メソッド オーバーロードを呼び出すことに相当する便利なメソッドです。

GetGetMethod メソッドを使用するには、最初に Type クラスを取得します。そして、Type から PropertyInfo を取得します。PropertyInfo から GetGetMethod メソッドを使用します。

GetGetMethod メソッドの 2 種類の使用方法をオーバーロードした例を次に示します。この例では、パブリック プロパティとプロテクト プロパティを定義しています。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

表示:
© 2015 Microsoft