このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

MemberInfo.GetCustomAttributes メソッド (Boolean)

2013/12/12

派生クラスでオーバーライドされた場合、このメンバーに適用されているすべてのカスタム属性の配列を返します。

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

public abstract Object[] GetCustomAttributes(
	bool inherit
)

パラメーター

inherit
型: System.Boolean
このメンバーの継承チェーンを検索して属性を見つける場合は true。それ以外の場合は false。プロパティおよびイベントの場合、このパラメーターは無視されます。「解説」を参照してください。

戻り値

型: System.Object []
このメンバーに適用されているすべてのカスタム属性が格納されている配列。定義されている属性がない場合は要素がゼロの配列。

実装

ICustomAttributeProvider.GetCustomAttributes(Boolean)

例外条件
TypeLoadException

カスタム属性の型を読み込むことができませんでした。

このメソッドでは、プロパティおよびイベントの inherit パラメーターは無視されます。プロパティおよびイベントの継承チェーンを検索して属性を見つけるには、Attribute.GetCustomAttributes メソッドの適切なオーバーロードを使用します。

バージョンについてのメモ

Windows Phone

一部の属性コンストラクター引数およびプロパティ値によって、MemberInfo.GetCustomAttributes が失敗する可能性があります。

カスタム属性を作成して MyClass.MyMethod に関連付け、実行時にこの属性を取得してその結果を表示する例を次に示します。

メモメモ:

この例を実行するには、「Windows Phone での静的 TextBlock コントロールのあるコード例のビルド」を参照してください。


using System;
using System.Reflection;

// Define a custom attribute with one named parameter.
[AttributeUsage(AttributeTargets.All)]
public class MyAttribute : Attribute
{
   private string myName;
   public MyAttribute(string name)
   {
      myName = name;
   }
   public string Name
   {
      get
      {
         return myName;
      }
   }
}

// Define a class that has the custom attribute associated with one of its members.
public class MyClass1
{
   [MyAttribute("This is an example attribute.")]
   public void MyMethod(int i)
   {
      return;
   }
}

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      try
      {
         // Get the type of MyClass1.
         Type myType = typeof(MyClass1);
         // Get the members associated with MyClass1.
         MemberInfo[] myMembers = myType.GetMembers();

         // Display the attributes for each of the members of MyClass1.
         for (int i = 0; i < myMembers.Length; i++)
         {
            Object[] myAttributes = myMembers[i].GetCustomAttributes(true);
            if (myAttributes.Length > 0)
            {
               outputBlock.Text += String.Format("\nThe attributes for the member {0} are: \n", myMembers[i]) + "\n";
               for (int j = 0; j < myAttributes.Length; j++)
                  outputBlock.Text += String.Format("The type of the attribute is {0}.", myAttributes[j]) + "\n";
            }
         }
      }
      catch (Exception e)
      {
         outputBlock.Text += String.Format("An exception occurred: {0}", e.Message) + "\n";
      }
   }
}


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2015 Microsoft