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 호출 특성 중 하나입니다.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 비트 플래그 중 하나입니다.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. 매개 변수에는 pdIn, pdOut, pdRetval, pdOptional, 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. 예를 들어, 1000은 문화권마다 다르게 표현되므로 culture는 1000을 나타내는 StringDouble 값으로 변환합니다.For 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[]

매개 변수의 String 배열입니다.A 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.Reflection

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
End Class

설명

호출해야 할 메서드에 액세스할 수 있어야 하며 이 메서드가 지정된 바인더 및 호출 특성의 제약 조건 하에서 지정된 인수 목록과 가장 구체적으로 일치하는 항목을 제공해야 합니다.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 메서드는 단일 매개 변수 한정자를 포함 해야 합니다.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.InvokeMethod, GetProperties등).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.

적용 대상

추가 정보