IReflect.InvokeMember メソッド
アセンブリ: mscorlib (mscorlib.dll 内)

Function InvokeMember ( _ name As String, _ invokeAttr As BindingFlags, _ binder As Binder, _ target As Object, _ args As Object(), _ modifiers As ParameterModifier(), _ culture As CultureInfo, _ namedParameters As String() _ ) As Object
Dim instance As IReflect Dim name As String Dim invokeAttr As BindingFlags Dim binder As Binder Dim target As Object Dim args As Object() Dim modifiers As ParameterModifier() Dim culture As CultureInfo Dim namedParameters As String() Dim returnValue As Object returnValue = instance.InvokeMember(name, invokeAttr, binder, target, args, modifiers, culture, namedParameters)
Object InvokeMember ( string name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParameters )
Object^ InvokeMember ( String^ name, BindingFlags invokeAttr, Binder^ binder, Object^ target, array<Object^>^ args, array<ParameterModifier>^ modifiers, CultureInfo^ culture, array<String^>^ namedParameters )
Object InvokeMember ( String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParameters )
function InvokeMember ( name : String, invokeAttr : BindingFlags, binder : Binder, target : Object, args : Object[], modifiers : ParameterModifier[], culture : CultureInfo, namedParameters : String[] ) : Object
- invokeAttr
BindingFlags 呼び出し属性の 1 つ。invokeAttrパラメータには、コンストラクタ、メソッド、プロパティ、フィールドなどを指定できます。適切な呼び出し属性を指定する必要があります。メンバの名前として空の文字列 ("") を渡すことによって、クラスの既定のメンバを呼び出します。
- modifiers
ParameterModifier オブジェクトの配列。この配列は、メタデータにある呼び出されたメンバの引数属性を表す args パラメータと同じ長さです。パラメータには、属性 pdIn、pdOut、pdRetval、pdOptional、および pdHasDefault を使用できます。これらはそれぞれ、[In]、[Out]、[retval]、[optional]、および既定のパラメータを表します。これらの属性は、さまざまな相互運用性サービスで使用されます。
- culture
型の強制変換を制御するために使用する CultureInfo のインスタンス。たとえば、culture は 1000 を表す文字列を double 値に変換します。これは、カルチャによって 1000 の表記が異なるためです。このパラメータが null 参照 (Visual Basic では Nothing) の場合は、現在のスレッドの CultureInfo が使用されます。
指定されたメンバ。

例外の種類 | 条件 |
---|---|
ArgumentException | invokeAttr が BindingFlags.CreateInstance で、その他のビット フラグも設定されています。 |
ArgumentException | invokeAttr が BindingFlags.CreateInstance ではなく、name が null 参照 (Visual Basic では Nothing) です。 |
ArgumentException | |
ArgumentException | |
ArgumentException | invokeAttr でフィールド set と Invoke メソッドの両方が指定されています。args はフィールド get 用です。 |
ArgumentException | |
MissingFieldException | |
MissingMethodException | メソッドが見つかりません。 |
SecurityException |

呼び出されるメソッドは、アクセスできる必要があり、指定したバインダと呼び出し属性の制約の下で、指定した引数リストと最も的確に一致します。
メソッド宣言のパラメータの数が指定した引数リストの引数の数と等しく、各引数の型がバインダによってパラメータの型に変換できる場合、メソッドが呼び出されます。
![]() |
---|
InvokeMember に渡すパラメータ修飾子の配列に含めることができるパラメータ修飾子は 1 つだけです。COM に公開するときに参照で渡す必要がある引数を判断するときは、最初のパラメータ修飾子だけが対象になります。 |
バインダは、バインディング要求 (BindingFlags.InvokeMethod、GetProperties など) された型に従って、一致するすべてのメソッドを検索します。メソッド セットは、名前、引数の数、バインダで定義されている一連の検索修飾子によってフィルタ処理されます。メソッドが選択された後、呼び出され、その時点でのアクセシビリティが検査されます。検索では、メソッドに関連付けられているアクセシビリティ属性に基づいて、どのメソッド セットを検索するかを制御できます。BindToMethod によって、呼び出すメソッドが選択されます。既定のバインダは最も的確に一致したものを選択します。
完全に信頼されたコードでは、アクセス制限は無視されます。コードが完全に信頼されていれば、リフレクションを使用して、プライベートなコンストラクタ、メソッド、フィールド、およびプロパティにアクセスし、それらを呼び出すことができます。

Imports System Imports System.Reflection Imports Microsoft.VisualBasic Public Class MainClass Public Overloads Shared Sub Main(ByVal args() As String) Dim tDate As Type = GetType(System.DateTime) Dim result As [Object] = tDate.InvokeMember("Now", _ BindingFlags.GetProperty, Nothing, Nothing, New [Object](-1) {}) Console.WriteLine(result.ToString()) End Sub 'Main End Class 'MainClass
using System; using System.Reflection; public class MainClass { public static void Main(string[] args) { Type tDate = typeof(System.DateTime); Object result = tDate.InvokeMember("Now", BindingFlags.GetProperty, null, null, new Object[0]); Console.WriteLine(result.ToString()); } }
#using <System.DLL> using namespace System; using namespace System::Reflection; #define NULL 0 void main() { Type^ tDate = Type::GetType( L"System.DateTime" ); Object^ result = tDate->InvokeMember( L"Now", BindingFlags::GetProperty, nullptr, NULL, gcnew array<Object^>(0) ); Console::WriteLine( result->ToString() ); }
import System.*; import System.Reflection.*; public class MainClass { public static void main(String[] args) { Type tDate = Type.GetType("System.DateTime"); Object result = tDate.InvokeMember("Now", BindingFlags.GetProperty, null, null, new Object[0]); Console.WriteLine(result.ToString()); } //main } //MainClass

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からIReflect.InvokeMember メソッドを検索する場合は、下記のリンクをクリックしてください。

- IReflect.InvokeMember メソッドのページへのリンク