PropertyInfo.SetValue メソッド (Object, Object, BindingFlags, Binder, Object[], CultureInfo)

2013/12/12

派生クラスでオーバーライドされている場合は、指定したバインド制約、バインダー、およびカルチャに従い、指定したオブジェクトのプロパティ値を指定した値に設定します。

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

public abstract void SetValue(
	Object obj,
	Object value,
	BindingFlags invokeAttr,
	Binder binder,
	Object[] index,
	CultureInfo culture
)

パラメーター

obj
型: System.Object
プロパティ値が設定されるオブジェクト。
value
型: System.Object
このプロパティの新しい値。
invokeAttr
型: System.Reflection.BindingFlags
呼び出し属性。次の BindingFlags のビット フラグにする必要があります。InvokeMethodCreateInstanceStaticGetFieldSetFieldGetProperty、または SetProperty。適切な呼び出し属性を指定する必要があります。静的メンバーを呼び出す場合は、BindingFlagsStatic フラグを設定する必要があります。
binder
型: System.Reflection.Binder
バインディング、引数型の強制変換、メンバーの呼び出し、およびリフレクションを使用した MemberInfo オブジェクトの取得を有効にするオブジェクト。bindernull の場合は、既定のバインダーが使用されます。
index
型: System.Object []
インデックス付きプロパティのインデックス値 (省略可能)。インデックス付きでないプロパティの場合は、この値を null にする必要があります。
culture
型: System.Globalization.CultureInfo
リソースがローカライズ対象のカルチャ。リソースがこのカルチャ用にローカライズされていない場合は、一致する対象を検索するために CultureInfo.Parent メソッドが連続して呼び出されます。この値が null の場合は、CultureInfo.CurrentUICulture プロパティから CultureInfo が取得されます。

例外条件
ArgumentException

index 配列に、必要な引数の型が格納されていません。

または

プロパティの set アクセサーが見つかりません。

TargetException

オブジェクトが対象の型と一致しないか、プロパティがインスタンス プロパティであるが、objnull です。

TargetParameterCountException

index 内のパラメーター数が、インデックス付きプロパティのパラメーター数と一致しません。

MethodAccessException

呼び出し元からプロパティにアクセスできません。

TargetInvocationException

プロパティ値を設定するときにエラーが発生しました。たとえば、インデックス付きプロパティに指定したインデックス値が範囲外です。InnerException プロパティは、例外の原因を示します。

プロパティがインデックス付きかどうかを確認するには、GetIndexParameters メソッドを使用します。結果の配列の要素数が 0 の場合、プロパティはインデックス付けされません。

Windows Phone では、アクセスできるプロパティのみをリフレクションで設定できます。

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

Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2014 Microsoft