この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

MemberInfo.GetCustomAttributes メソッド (Boolean)

 

公開日: 2016年10月

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

名前空間:   System.Reflection
アセンブリ:  mscorlib (mscorlib.dll 内)

public abstract object[] GetCustomAttributes(
	bool inherit
)

パラメーター

inherit
Type: System.Boolean

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

戻り値

Type: System.Object[]

このメンバーに適用されるすべてのカスタム属性を格納している配列または配列要素の属性が定義されていない場合。

Exception Condition
InvalidOperationException

このメンバーは、リフレクションのみのコンテキストに読み込まれる型に属しています。方法 : リフレクションのみのコンテキストにアセンブリを読み込む」を参照してください。

TypeLoadException

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

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

System_CAPS_noteメモ

   .NET framework version 2.0 では、新しいメタデータ形式で格納されている場合、このメソッドはメソッド、コンス トラクター、および種類のセキュリティ属性を返します。 バージョン 2.0 でコンパイルされたアセンブリでは、この形式を使用します。 動的アセンブリと .NET Framework の以前のバージョンでコンパイルされたアセンブリは、古い XML 形式を使用します。 参照してください 宣言セキュリティ属性を出力します。

次の例は、カスタム属性を定義しを持つ属性 MyClass.MyMethod, 、実行時に、属性を取得し、結果が表示されます。

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 MemberInfo_GetCustomAttributes
{
    public static void Main()
    {
        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)
                {
                    Console.WriteLine("\nThe attributes for the member {0} are: \n", myMembers[i]);
                    for(int j = 0; j < myAttributes.Length; j++)
                        Console.WriteLine("The type of the attribute is {0}.", myAttributes[j]);
                }
            }
        }
        catch(Exception e)
        {
            Console.WriteLine("An exception occurred: {0}", e.Message);
        }
    }
}

.NET Framework
1.1 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
トップに戻る
表示: