指定したバインダの制約の下で、このインスタンスによってリフレクションされるメソッドを、指定したオブジェクトに対してパラメータを指定して動的に呼び出します。
Overrides Overloads Public Function Invoke( _
ByVal obj As Object, _ ByVal invokeAttr As BindingFlags, _ ByVal binder As Binder, _ ByVal parameters() As Object, _ ByVal culture As CultureInfo _) As Object
[C#]
public override object Invoke(objectobj,BindingFlagsinvokeAttr,Binderbinder,object[] parameters,CultureInfoculture);
[C++]
public: Object* Invoke(Object* obj,BindingFlagsinvokeAttr,Binder* binder,Object* parameters __gc[],CultureInfo* culture);
[JScript]
public override function Invoke(
obj : Object,invokeAttr : BindingFlags,binder : Binder,parameters : Object[],culture : CultureInfo) : Object;
パラメータ
- obj
指定したメソッドの呼び出し元となるオブジェクト。メソッドが静的な場合、このパラメータは無視されます。 - invokeAttr
InvokeMethod 、 NonPublic などの BindingFlags のビット フラグにする必要があります。 - binder
バインディング、引数型の強制変換、メンバの呼び出し、およびリフレクションを通じた MemberInfo オブジェクトの取得を有効にするオブジェクト。バインダが null 参照 (Visual Basic では Nothing) の場合は、既定のバインダが使用されます。詳細については、 Binder のトピックを参照してください。 - parameters
引数リスト。これは、呼び出すメソッドのパラメータと同じ数、順序、および型の引数の配列です。パラメータがない場合は、 null 参照 (Visual Basic では Nothing) にします。 - culture
型の強制変換を制御するために使用する CultureInfo のインスタンス。null の場合は、現在のスレッドの CultureInfo が使用されます。このインスタンスは、たとえば、1000 を表す String を Double 値に変換する場合に必要です。これは、カルチャによって 1000 の表記が異なるためです。
戻り値
呼び出されたメソッドの戻り値を格納しているオブジェクトを返します。
例外
例外の種類 | 条件 |
---|---|
NotSupportedException | このメソッドは、現在サポートされていません。 GetMethod を使用してメソッドを取得し、返された MethodInfo に対して InvokeMember を呼び出します。 |
解説
メソッドが静的な場合、 obj パラメータは無視されます。非静的メソッドの場合、 obj は、そのメソッドを継承または宣言しているクラスのインスタンスで、このクラスと同じ型である必要があります。メソッドにパラメータがない場合、parameters の値は null 参照 (Visual Basic では Nothing) です。それ以外の場合、parameters 配列の要素の数、型、および順序は、このインスタンスによってリフレクションされるメソッドのパラメータの数、型、および順序と同一である必要があります。
メモ 完全に信頼されたコードでは、アクセス制限は無視されます。コードが完全に信頼されていると、リフレクションを使用して、プライベートなコンストラクタ、メソッド、フィールド、およびプロパティにアクセスし、それらを呼び出すことができます。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
MethodBuilder クラス | MethodBuilder メンバ | System.Reflection.Emit 名前空間 | MethodBuilder.Invoke オーバーロードの一覧