情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

PropertyInfo クラス

2013/12/12

プロパティの属性を取得し、プロパティのメタデータにアクセスできるようにします。

System.Object
  System.Reflection.MemberInfo
    System.Reflection.PropertyInfo

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

public abstract class PropertyInfo : MemberInfo

PropertyInfo 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック プロパティAttributesこのプロパティの属性を取得します。
パブリック プロパティCanReadプロパティを読み取ることができるかどうかを示す値を取得します。
パブリック プロパティCanWriteプロパティに書き込むことができるかどうかを示す値を取得します。
パブリック プロパティCustomAttributesこのメンバーのカスタム属性を格納するコレクションを取得します。 (MemberInfo から継承されます。)
パブリック プロパティDeclaringTypeこのメンバーを宣言するクラスを取得します。 (MemberInfo から継承されます。)
パブリック プロパティGetMethodこのプロパティの get アクセサーを返します。
パブリック プロパティIsSpecialNameプロパティの名前がコンパイラで特殊な名前として認識されるかどうかを示す値を取得します。
パブリック プロパティMemberTypeこのメンバーがプロパティであることを示す MemberTypes 値を取得します。 (MemberInfo.MemberType をオーバーライドします。)
パブリック プロパティMetadataTokenメタデータ要素を識別する値を取得します。 (MemberInfo から継承されます。)
パブリック プロパティModule現在の MemberInfo によって表されるメンバーを宣言する型が定義されているモジュールを取得します。 (MemberInfo から継承されます。)
パブリック プロパティName現在のメンバーの名前を取得します。 (MemberInfo から継承されます。)
パブリック プロパティPropertyTypeこのプロパティの型を取得します。
パブリック プロパティReflectedTypeMemberInfo のこのインスタンスを取得するために使用されたクラス オブジェクトを取得します。 (MemberInfo から継承されます。)
パブリック プロパティSetMethodこのプロパティの set アクセサーを取得ます。
このページのトップへ

  名前説明
パブリック メソッドEquals対象のインスタンスが、指定したオブジェクトに等しいかどうかを示す値を返します。 (MemberInfo.Equals(Object) をオーバーライドします。)
プロテクト メソッドFinalizeObject がガベージ コレクションで再利用される前に、Object がリソースを解放して他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッドGetAccessors()現在のインスタンスがリフレクションしているプロパティの、パブリックな get アクセサー、set アクセサー、およびその他のアクセサーをリフレクションする要素で構成される配列を返します。
パブリック メソッドGetAccessors(Boolean)現在のインスタンスがリフレクションしているプロパティの、パブリックな get アクセサー、set アクセサー、およびその他のアクセサーをリフレクションする要素で構成される配列を返します。非パブリック アクセサーを含めるよう指定することもできます。
パブリック メソッドGetConstantValueコンパイラによってプロパティに関連付けられているリテラル値を返します。
パブリック メソッドGetCustomAttributes(Boolean)派生クラスでオーバーライドされた場合、このメンバーに適用されているすべてのカスタム属性の配列を返します。 (MemberInfo から継承されます。)
パブリック メソッドGetCustomAttributes(Type, Boolean)派生クラスでオーバーライドされた場合、このメンバーに適用されていて、Type によって識別されるカスタム属性の配列を返します。 (MemberInfo から継承されます。)
パブリック メソッドGetGetMethod()このプロパティのパブリックな get アクセサーを取得します。
パブリック メソッドGetGetMethod(Boolean)派生クラスによってオーバーライドされた場合に、このプロパティのパブリックまたは非パブリックな get アクセサーを返します。
パブリック メソッドGetHashCodeこのインスタンスのハッシュ コードを返します。 (MemberInfo.GetHashCode() をオーバーライドします。)
パブリック メソッドGetIndexParameters派生クラスによってオーバーライドされた場合に、プロパティのすべてのインデックス パラメーターの配列を返します。
パブリック メソッドGetRawConstantValueコンパイラによってプロパティに関連付けられているリテラル値を返します。
パブリック メソッドGetSetMethod()このプロパティのパブリックな set アクセサーを返します。
パブリック メソッドGetSetMethod(Boolean)派生クラスでオーバーライドされた場合、このプロパティの set アクセサーを返します。
パブリック メソッドGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッドGetValue(Object)指定したオブジェクトのプロパティ値を返します。
パブリック メソッドGetValue(Object, Object[])プロパティの値を返します。インデックス付きプロパティの場合は、オプションでインデックス値を返すことができます。
パブリック メソッドGetValue(Object, BindingFlags, Binder, Object[], CultureInfo)派生クラスによってオーバーライドされた場合に、指定したバインディング、インデックス、および CultureInfo を持つプロパティの値を返します。
パブリック メソッドIsDefined派生クラスでオーバーライドされた場合、このメンバーに、指定された型の属性またはその派生型の属性が 1 つ以上適用されているかどうかを示します。 (MemberInfo から継承されます。)
プロテクト メソッドMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッドSetValue(Object, Object)指定したオブジェクトのプロパティ値を設定します。
パブリック メソッドSetValue(Object, Object, Object[])指定したオブジェクトでプロパティの値、およびインデックス付きプロパティの場合はオプションのインデックス値を設定します。
パブリック メソッドSetValue(Object, Object, BindingFlags, Binder, Object[], CultureInfo)派生クラスでオーバーライドされている場合は、指定したバインド制約、バインダー、およびカルチャに従い、指定したオブジェクトのプロパティ値を指定した値に設定します。
パブリック メソッドToString現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
このページのトップへ

  名前説明
パブリック拡張メソッドGetCustomAttribute(Type)オーバーロードされます。 指定したメンバーに適用される指定した型のカスタム属性を取得します。 (CustomAttributeExtensions によって定義されています。)
パブリック拡張メソッドGetCustomAttribute(Type, Boolean)オーバーロードされます。 指定したメンバーに適用される指定した型のカスタム属性を取得し、オプションでそのメンバーの先祖を検査します。 (CustomAttributeExtensions によって定義されています。)
パブリック拡張メソッドGetCustomAttribute<T>()オーバーロードされます。 指定したメンバーに適用される指定した型のカスタム属性を取得します。 (CustomAttributeExtensions によって定義されています。)
パブリック拡張メソッドGetCustomAttribute<T>(Boolean)オーバーロードされます。 指定したメンバーに適用される指定した型のカスタム属性を取得し、オプションでそのメンバーの先祖を検査します。 (CustomAttributeExtensions によって定義されています。)
パブリック拡張メソッドGetCustomAttributes()オーバーロードされます。 指定したメンバーに適用されるカスタム属性のコレクションを取得します。 (CustomAttributeExtensions によって定義されています。)
パブリック拡張メソッドGetCustomAttributes(Type)オーバーロードされます。 指定したメンバーに適用する指定した型のカスタム属性のコレクションを取得します。 (CustomAttributeExtensions によって定義されています。)
パブリック拡張メソッドGetCustomAttributes<T>()オーバーロードされます。 指定したメンバーに適用する指定した型のカスタム属性のコレクションを取得します。 (CustomAttributeExtensions によって定義されています。)
パブリック拡張メソッドGetCustomAttributes<T>(Boolean)オーバーロードされます。 指定したメンバーに適用される指定した型のカスタム属性のコレクションを取得し、オプションでそのメンバーの先祖を検査します。 (CustomAttributeExtensions によって定義されています。)
パブリック拡張メソッドIsDefined指定した型のカスタム属性が指定したメンバーに適用されているかどうかを示します。 (CustomAttributeExtensions によって定義されています。)
このページのトップへ

プロパティは、論理的にはフィールドと同じです。プロパティは、オブジェクトの状態を表す名前が付いた部分で、通常、get アクセサーと set アクセサーを通じて値にアクセスできます。プロパティは、読み取り専用のことがあります。この場合、set アクセサーはありません。

メモメモ:

プロパティが static であるかどうかを判断するには、GetGetMethod メソッドまたは GetSetMethod メソッドを呼び出すことによって、get アクセサーまたは set アクセサーの MethodInfo を取得し、その IsStatic プロパティを調べる必要があります。

PropertyInfoICustomAttributeProvider.GetCustomAttributes を呼び出すときに inherittrue を指定しても、型階層は検索されません。継承されたカスタム属性を一覧表示するには、Attribute.GetCustomAttributes(MemberInfo, Boolean) メソッドを使用します。ただし、このメソッドを使用しても、継承されたカスタム属性については、System.Attribute から派生した属性しか検索されません。

リフレクションを使用してインデックス付きプロパティの値を取得する方法の例を次に示します。String.Chars プロパティは、String クラスの既定のプロパティ (C# の場合はインデクサー) です。

メモメモ:

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


using System;
using System.Reflection;

class Example
{
    public static void Demo(System.Windows.Controls.TextBlock outputBlock)
    {
        string test = "abcdefghijklmnopqrstuvwxyz";

        // To retrieve the value of the indexed Chars property  using 
        // reflection, create an instance of PropertyInfo for Chars.
        //
        PropertyInfo pinfo = typeof(string).GetProperty("Chars");

        // To retrieve an instance property, the GetValue method
        // requires the object whose property is being accessed, and 
        // an array of objects representing the index values. 

        // Get the seventh character in the test string. 
        // Note that the index is zero-based.
        object[] indexArgs = { 6 };
        object value = pinfo.GetValue(test, indexArgs);
        outputBlock.Text += 
            String.Format("The character at index 6 is \"{0}\".\n", value);

        // Show the complete string, one character at a time.
        for(int i = 0; i < test.Length; i++)
        {
            outputBlock.Text += pinfo.GetValue(test, new object[] { i });
        }
        outputBlock.Text += "\n";
    }
}

/* This example produces the following output:

The character at index 6 is "g".
abcdefghijklmnopqrstuvwxyz
 */


Windows Phone OS

サポート: 8.0, 7.1, 7.0

この型は、スレッド セーフです。

表示: