IReflect.InvokeMember 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 멤버를 호출합니다.
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);
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
Public 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
매개 변수
- name
- String
찾을 멤버의 이름입니다.
- invokeAttr
- BindingFlags
BindingFlags 호출 특성 중 하나입니다. invokeAttr
매개 변수는 생성자, 메서드, 속성 또는 필드일 수 있습니다. 적합한 호출 특성을 지정해야 합니다. 빈 문자열("")을 멤버의 이름으로 전달하여 클래스의 기본 멤버를 호출합니다.
- binder
- Binder
BindingFlags 비트 플래그 중 하나입니다. 이 메서드와 관련된 속성이 포함된 Binder를 구현합니다.
- target
- Object
지정한 멤버를 호출할 개체입니다. 이 매개 변수는 정적 멤버에 대해서는 무시됩니다.
- args
- Object[]
호출되는 멤버에 대한 매개 변수의 개수, 순서 및 형식이 포함된 개체의 배열입니다. 매개 변수가 없는 경우 이 배열은 빈 배열입니다.
- modifiers
- ParameterModifier[]
ParameterModifier 개체의 배열입니다. 이 배열의 길이는 메타데이터에 있는 호출된 멤버의 인수 특성을 나타내는 args
매개 변수의 길이와 같습니다. 매개 변수에는 pdIn
, pdOut
, pdRetval
, pdOptional
, pdHasDefault
와 같은 특성을 사용할 수 있습니다. 이러한 특성은 각각 [In], [Out], [retval], [optional] 및 기본 매개 변수를 나타내며 다양한 상호 운용성 서비스에서 사용됩니다.
- culture
- CultureInfo
형식의 강제 변환을 제어하는 데 사용되는 CultureInfo 의 인스턴스입니다. 예를 들어, 1000은 문화권마다 다르게 표현되므로 culture
는 1000을 나타내는 문자열을 Double 값으로 변환합니다. 이 매개 변수가 null
이면 현재 스레드에 대한 CultureInfo가 사용됩니다.
- namedParameters
- String[]
매개 변수의 문자열 배열입니다.
반환
지정된 멤버입니다.
예외
set
필드에 대해 두 개 이상의 인수가 지정되는 경우
필드 또는 속성을 찾을 수 없습니다.
메서드를 찾을 수 없는 경우
필요한 ReflectionPermission 없이 전용 멤버가 호출되는 경우
예제
다음 예제에서는 값을 가져옵니다는 속성입니다 Now .
#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
설명
호출해야 할 메서드에 액세스할 수 있어야 하며 이 메서드가 지정된 바인더 및 호출 특성의 제약 조건 하에서 지정된 인수 목록과 가장 구체적으로 일치하는 항목을 제공해야 합니다.
메서드 선언의 매개 변수 수가 지정된 인수 목록의 인수 수와 같고 각 인수의 형식을 바인더가 매개 변수 형식으로 변환할 수 있는 경우 메서드가 호출됩니다.
참고
메서드에 전달된 매개 변수 한정자의 배열에는 InvokeMember 단일 매개 변수 한정자가 포함되어야 합니다. COM에 노출될 때 참조로 전달해야 하는 인수를 결정할 때 첫 번째 매개 변수 한정자만 고려됩니다.
바인더는 요청된 바인딩 형식(BindingFlags.InvokeMethod, GetProperties등)에 따라 일치하는 모든 메서드를 찾습니다. 메서드 집합은 이름, 인수 수 및 바인더에 정의된 검색 한정자 집합으로 필터링됩니다. 메서드를 선택한 후에는 메서드가 호출되고 해당 시점에서 접근성이 확인됩니다. 검색은 메서드와 연결된 접근성 특성에 따라 검색되는 메서드 집합을 제어할 수 있습니다. BindToMethod 는 호출할 메서드를 선택합니다. 기본 바인더는 가장 구체적인 일치 항목을 선택합니다.
완전히 신뢰할 수 있는 코드에 대한 액세스 제한은 무시됩니다. 즉, 코드를 완전히 신뢰할 때마다 리플렉션을 통해 프라이빗 생성자, 메서드, 필드 및 속성에 액세스하고 호출할 수 있습니다.
적용 대상
추가 정보
.NET