指定されたメンバを呼び出します。呼び出されるメソッドは、アクセスできる必要があり、指定したバインダと呼び出し属性の制約の下で、指定した引数リストと最も的確に一致します。
Overrides Overloads Public Function InvokeMember( _
ByVal name As String, _ ByVal invokeAttr As BindingFlags, _ ByVal binder As Binder, _ ByVal target As Object, _ ByVal args() As Object, _ ByVal modifiers() As ParameterModifier, _ ByVal culture As CultureInfo, _ ByVal namedParameters() As String _) As Object Implements IReflect.InvokeMember
[C#]
public override object InvokeMember(stringname,BindingFlagsinvokeAttr,Binderbinder,objecttarget,object[] args,ParameterModifier[] modifiers,CultureInfoculture,string[] namedParameters);
[C++]
public: Object* InvokeMember(String* name,BindingFlagsinvokeAttr,Binder* binder,Object* target,Object* args __gc[],ParameterModifiermodifiers[],CultureInfo* culture,String* namedParameters __gc[]);
[JScript]
public override function InvokeMember(
name : String,invokeAttr : BindingFlags,binder : Binder,target : Object,args : Object[],modifiers : ParameterModifier[],culture : CultureInfo,namedParameters : String[]) : Object;
パラメータ
- name
呼び出されるメンバの名前。コンストラクタ、メソッド、プロパティ、またはフィールドを指定できます。適切な呼び出し属性を指定する必要があります。メンバの名前として空の文字列を渡すことによって、クラスの既定のメンバを呼び出すことができます。 - invokeAttr
呼び出し属性。 BindingFlags のビット フラグにする必要があります。 - binder
バインディング、引数型の強制変換、メンバの呼び出し、および、リフレクションを使用した MemberInfo オブジェクトの取得を有効にするオブジェクト。バインダが null 参照 (Visual Basic では Nothing) の場合は、既定のバインダが使用されます。 Binder のトピックを参照してください。 - target
指定したメンバを呼び出す対象となるオブジェクト。メンバが静的な場合、このパラメータは無視されます。 - args
引数リスト。呼び出すメンバのパラメータの数、順序、および型を格納するオブジェクトの配列です。パラメータがない場合は、null にします。 - modifiers
args と同じ長さで、要素が呼び出すメンバの引数に関連付けられた属性を表す配列。パラメータにはメタデータに関連付けられた属性があります。これらの属性は、さまざまな相互運用性サービスで使用されます。詳細については、メタデータの仕様を参照してください。 - culture
型の強制変換を制御するために使用する CultureInfo のインスタンス。null の場合は、現在のスレッドの CultureInfo が使用されます。このパラメータは、たとえば、1000 を表す文字列を double 型の値に変換する場合に必要です。これは、カルチャによって 1000 の表記が異なるためです。 - namedParameters
namedParameters 配列内の各パラメータは、 args 配列内の対応する要素の値を取得します。 args の長さが namedParameters の長さを超える場合は、残った引数の値が順に渡されます。
戻り値
呼び出されたメンバの戻り値を返します。
実装
例外
例外の種類 | 条件 |
---|---|
NotSupportedException | このメソッドは現在、不完全な型に対してはサポートされていません。 |
解説
メソッド宣言のパラメータの数が指定した引数リストの引数の数と等しく、各引数の型がバインダによってパラメータの型に変換できる場合は、メソッドが呼び出されます。
バインダは一致するすべてのメソッドを検索します。これらのメソッドは、要求されたバインディングの型 (BindingFlags.InvokeMethod、BindingFlags.GetProperties など) に基づいて検索されます。メソッド セットは、名前、引数の数、バインダで定義されている一連の検索修飾子によってフィルタ処理されます。メソッドは、選択された後に呼び出されます。その時点で、アクセスできるかどうかが確認されます。検索では、メソッドに関連付けられているアクセシビリティ属性に基づいて、どのメソッド セットを検索するかを制御できます。 IBinder.BindToMethod メソッドは、呼び出すメソッドを選択します。既定のバインダは最も的確に一致したものを選択します。
メモ 完全に信頼されたコードでは、アクセス制限は無視されます。コードが完全に信頼されていると、リフレクションを使用して、プライベートなコンストラクタ、メソッド、フィールド、およびプロパティにアクセスし、それらを呼び出すことができます。
このメソッドは、現在サポートされていません。 GetType または GetType を使用して型を取得し、取得した型に対してリフレクションを使用できます。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
TypeBuilder クラス | TypeBuilder メンバ | System.Reflection.Emit 名前空間 | TypeBuilder.InvokeMember オーバーロードの一覧