IReflect.InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) IReflect.InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) IReflect.InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) Method

定義

指定されたメンバーを呼び出します。Invokes a specified member.

public:
 System::Object ^ InvokeMember(System::String ^ name, System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, System::Object ^ target, cli::array <System::Object ^> ^ args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ namedParameters);
public object InvokeMember (string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters);
abstract member InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj

パラメーター

name
String String String

検索対象のメンバーの名前。The name of the member to find.

invokeAttr
BindingFlags BindingFlags BindingFlags

BindingFlags 呼び出し属性の 1 つ。One of the BindingFlags invocation attributes. invokeAttrパラメーターには、コンストラクター、メソッド、プロパティ、フィールドなどを指定できます。The invokeAttr parameter may be a constructor, method, property, or field. 適切な呼び出し属性を指定する必要があります。A suitable invocation attribute must be specified. メンバーの名前として空の文字列 ("") を渡すことによって、クラスの既定のメンバーを呼び出します。Invoke the default member of a class by passing the empty string ("") as the name of the member.

binder
Binder Binder Binder

BindingFlags ビット フラグの 1 つ。One of the BindingFlags bit flags. このメソッドに関連するプロパティを格納する Binder を実装します。Implements Binder, containing properties related to this method.

target
Object Object Object

指定したメンバーを呼び出す対象となるオブジェクト。The object on which to invoke the specified member. 静的メンバーの場合、このパラメーターは無視されます。This parameter is ignored for static members.

args
Object[]

呼び出すメンバーのパラメーターの数、順序、および型を格納するオブジェクトの配列。An array of objects that contains the number, order, and type of the parameters of the member to be invoked. パラメーターがない場合は、空の配列です。This is an empty array if there are no parameters.

modifiers
ParameterModifier[]

ParameterModifier オブジェクトの配列。An array of ParameterModifier objects. この配列は、メタデータにある呼び出されたメンバーの引数属性を表す args パラメーターと同じ長さです。This array has the same length as the args parameter, representing the invoked member's argument attributes in the metadata. パラメーターには、属性 pdInpdOutpdRetvalpdOptional、および pdHasDefault を使用できます。A parameter can have the following attributes: pdIn, pdOut, pdRetval, pdOptional, and pdHasDefault. これらはそれぞれ、[In]、[Out]、[retval]、[optional]、および既定のパラメーターを表します。These represent [In], [Out], [retval], [optional], and a default parameter, respectively. これらの属性は、さまざまな相互運用性サービスで使用されます。These attributes are used by various interoperability services.

culture
CultureInfo CultureInfo CultureInfo

型の強制変換を制御するために使用する CultureInfo のインスタンス。An instance of CultureInfo used to govern the coercion of types. たとえば、culture は 1000 を表す文字列を String 値に変換します。これは、カルチャによって 1000 の表記が異なるためです。DoubleFor example, culture converts a String that represents 1000 to a Double value, since 1000 is represented differently by different cultures. このパラメーターが null の場合は、現在のスレッドの CultureInfo が使用されます。If this parameter is null, the CultureInfo for the current thread is used.

namedParameters
String[]

パラメーターの文字列配列。StringA String array of parameters.

戻り値

指定されたメンバー。The specified member.

例外

フィールド set に複数の引数が指定されています。More than one argument is specified for a field set.

フィールドまたはプロパティが見つかりません。The field or property cannot be found.

メソッドが見つかりません。The method cannot be found.

必要な ReflectionPermission がない状態でプライベート メンバーが呼び出されました。A private member is invoked without the necessary ReflectionPermission.

次の例の値を取得する、Nowプロパティ。The following example obtains the value of the Now property.

#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() );
}

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());
    }
}
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

注釈

呼び出すメソッドはアクセス可能でなければならず、指定したバインダーと呼び出し属性の制約の下で、指定された引数リストに対する一致の特定性が最高のものでなければなりません。The method that is to be invoked must be accessible and provide the most specific match with the specified argument list, under the constraints of the specified binder and invocation attributes.

メソッド宣言パラメーターの数に等しい、指定した引数リストの引数の数と各引数の型は、バインダーによってパラメーターの型に変換できる場合は、メソッドが呼び出されます。A method is invoked if the number of parameters in the method declaration equals the number of arguments in the specified argument list, and the type of each argument can be converted by the binder to the type of the parameter.

注意

渡されるパラメーター修飾子の配列、InvokeMemberメソッドは、1 つのパラメーター修飾子を含める必要があります。The array of parameter modifiers passed to the InvokeMember method must contain a single parameter modifier. 最初のパラメーター修飾子は COM に公開されたときに参照渡しの引数を決定する必要がある場合と見なされますOnly the first parameter modifier is considered when determining which argument needs to be passed by reference when exposed to COM.

バインダーが要求されたバインドの種類に従って、すべての一致するメソッドを検索します (BindingFlags.InvokeMethodGetPropertiesなど)。The binder finds all matching methods, in accordance with the type of binding requested (BindingFlags.InvokeMethod, GetProperties, and so on). メソッドのセットは、名前、引数の数とバインダーで定義されている検索修飾子のセットによってフィルター処理されます。The set of methods is filtered by the name, number of arguments, and a set of search modifiers defined in the binder. メソッドを選択するが呼び出され、アクセシビリティがその時点でチェックされます。After the method is selected, it is invoked, and accessibility is checked at that point. 検索では、メソッドのセットが、メソッドに関連付けられているユーザー補助属性に基づいて検索を制御できます。The search may control which set of methods is searched based upon the accessibility attribute associated with the method. BindToMethod 呼び出されるメソッドを選択します。BindToMethod selects the method to be invoked. 既定のバインダーでは、最も具体的な一致を選択します。The default binder selects the most specific match.

アクセスの制限には、完全に信頼されたコードは無視されます。Access restrictions are ignored for fully trusted code. つまり、プライベート コンス トラクター、メソッド、フィールド、およびプロパティにアクセスでき、コードが完全に信頼されたリフレクションを通じて起動します。That is, private constructors, methods, fields, and properties can be accessed and invoked through reflection whenever the code is fully trusted.

適用対象

こちらもご覧ください