派生クラスによってオーバーライドされた場合、指定したオブジェクトでサポートされているフィールドの値を設定します。
Overloads Public MustOverride Sub SetValue( _
ByVal obj As Object, _ ByVal value As Object, _ ByVal invokeAttr As BindingFlags, _ ByVal binder As Binder, _ ByVal culture As CultureInfo _)
[C#]
public abstract void SetValue(objectobj,objectvalue,BindingFlagsinvokeAttr,Binderbinder,CultureInfoculture);
[C++]
public: virtual void SetValue(Object* obj,Object* value,BindingFlagsinvokeAttr,Binder* binder,CultureInfo* culture) = 0;
[JScript]
public abstract function SetValue(
obj : Object,value : Object,invokeAttr : BindingFlags,binder : Binder,culture : CultureInfo);
パラメータ
- obj
フィールド値が設定されるオブジェクト。 - value
フィールドに代入する値。 - invokeAttr
必要なバインディングの種類 (Binder.CreateInstance や Binder.ExactBinding など) を指定する Binder のフィールド。 - binder
バインディング、引数型の強制変換、リフレクションを通じたメンバの呼び出しを有効にする一連のプロパティ。 binder が null 参照 (Visual Basic では Nothing) の場合は、 Binder.DefaultBinding が使用されます。 - culture
特定のカルチャに関するソフトウェア上の設定。
例外
例外の種類 | 条件 |
---|---|
FieldAccessException | 呼び出し元に、このフィールドに対するアクセス許可がありません。 |
TargetException | obj パラメータが null 参照 (Visual Basic では Nothing) で、フィールドがインスタンス フィールドです。 |
ArgumentException | フィールドがオブジェクト上に存在しません。
または value パラメータを変換し、フィールドに格納できません。 |
解説
このメソッドは、このインスタンスがリフレクションする、 obj のフィールドに value を代入します。フィールドが静的な場合、 obj は無視されます。非静的フィールドの場合、 obj は、そのフィールドを継承または宣言しているクラスのインスタンスであることが必要です。新しい値はオブジェクトとして渡されます。たとえば、フィールドの型が Boolean の場合は、適切なブール値を持つオブジェクトのインスタンスが渡されます。値を設定する前に、 SetValue は、必要なアクセス許可があるかどうかを確認します。
メモ 完全に信頼されたコードでは、アクセス制限は無視されます。コードが完全に信頼されていれば、リフレクションを使用して、プライベートなコンストラクタ、メソッド、フィールド、およびプロパティにアクセスし、それらを呼び出すことができます。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard
.NET Framework セキュリティ:
- ReflectionPermission (Type.InvokeMember などの機構を通じて遅延バインディングで呼び出すときに必要なアクセス許可) ReflectionPermissionFlag.MemberAccess (関連する列挙体)
- ReflectionPermission (非パブリック フィールドを返すために必要なアクセス許可) ReflectionPermissionFlag.MemberAccess (関連する列挙体)
- SecurityPermission (初期化専用フィールドを更新するために必要なアクセス許可) SecurityPermissionFlag.SerializationFormatter (関連する列挙体)
参照
FieldInfo クラス | FieldInfo メンバ | System.Reflection 名前空間 | FieldInfo.SetValue オーバーロードの一覧