다음을 통해 공유


Binder.BindToMethod 메서드

정의

제공된 인수를 기반으로 지정된 메서드 집합에서 호출할 메서드를 선택합니다.

public:
 abstract System::Reflection::MethodBase ^ BindToMethod(System::Reflection::BindingFlags bindingAttr, cli::array <System::Reflection::MethodBase ^> ^ match, cli::array <System::Object ^> ^ % args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ names, [Runtime::InteropServices::Out] System::Object ^ % state);
public abstract System.Reflection.MethodBase BindToMethod (System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object?[] args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? names, out object? state);
public abstract System.Reflection.MethodBase BindToMethod (System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] names, out object state);
abstract member BindToMethod : System.Reflection.BindingFlags * System.Reflection.MethodBase[] * Object[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] * obj -> System.Reflection.MethodBase
Public MustOverride Function BindToMethod (bindingAttr As BindingFlags, match As MethodBase(), ByRef args As Object(), modifiers As ParameterModifier(), culture As CultureInfo, names As String(), ByRef state As Object) As MethodBase

매개 변수

bindingAttr
BindingFlags

BindingFlags 값의 비트 조합입니다.

match
MethodBase[]

일치 가능한 메서드 집합입니다. 예를 들어, Binder 개체가 InvokeMember에서 사용되는 경우 리플렉션에서 일치 가능 항목으로 확인된 메서드 집합은 일반적으로 올바른 멤버 이름을 가지므로이 매개 변수는 메서드 집합을 지정합니다. DefaultBinder에서 제공하는 기본 구현은 이 배열의 순서를 변경합니다.

args
Object[]

전달되는 인수입니다. 바인더는 이 배열의 인수 순서를 변경할 수 있습니다. 예를 들어 names 매개 변수를 사용하여 위치 순서 외의 순서를 지정하는 경우 기본 바인더는 인수 순서를 변경합니다. 바인더 구현에서 인수 형식을 강제 변환하면 인수 형식과 값도 변경될 수 있습니다.

modifiers
ParameterModifier[]

형식이 수정된 매개 변수 시그니처로 작업하기 위해 바인딩을 사용하는 매개 변수 한정자의 배열입니다. 기본 바인더 구현에서는 이 매개 변수를 사용하지 않습니다.

culture
CultureInfo

형식을 강제 변환하는 바인더 구현에서 데이터 형식의 강제 변환을 제어하는 데 사용되는 CultureInfo의 인스턴스입니다. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.

names
String[]

일치시킬 때 매개 변수 이름이 고려되는 경우 매개 변수 이름이고, 인수가 위치로만 간주되는 경우 null입니다. 예를 들어, 인수가 위치 순서대로 제공되지 않는 경우 매개 변수 이름을 사용해야 합니다.

state
Object

메서드가 반환된 후 state에는 인수 순서 변경을 추적하는 바인더 제공 개체가 포함됩니다. 바인더는 이 개체를 만들고 이 개체의 유일한 소비자입니다. null 매개 변수(Visual Basic에서는 BindToMethod 매개 변수)의 값을 검색할 수 있도록 state를 원래 순서로 복원하려는 경우와 같이, ref가 반환될 때 stateByRef이 아닌 경우 argsReorderArgumentArray(Object[], Object)에 전달해야 합니다.

반환

일치하는 메서드입니다.

예외

기본 바인더에 대해 matchargs와 동등하게 일치하는 여러 메서드가 포함된 경우. 예를 들어 args 에는 인터페이스를 MyClass 구현 IMyClass 하는 개체가 포함되며 를 사용하는 MyClass 메서드와 match 를 사용하는 IMyClass메서드가 포함됩니다.

기본 바인더에 대해 match에 제공된 인수를 받아들일 수 있는 메서드가 args에 포함되지 않은 경우

기본 바인더에 대해 matchnull이거나 빈 배열인 경우

설명

기본 바인더는 값과 params 배열이 있는 매개 변수(ParamArray Visual Basic의 배열)를 모두 고려합니다. 따라서 및 match 가 동일한 수의 요소를 포함하지 않는 경우 args 일치 항목을 찾을 수 있습니다.

바인더를 사용하면 인수 배열이 에 의해 조작된 경우 클라이언트가 인수 배열을 원래 형식으로 BindToMethod다시 매핑할 수 있습니다. 이러한 인수가 있는 경우 이 다시 매핑 기능을 사용하여 참조별 인수를 다시 가져옵니다. 이름으로 인수를 전달하면 바인더가 인수 배열을 다시 정렬합니다. 매개 변수는 state 인수 다시 정렬을 추적하므로 바인더의 ReorderArgumentArray 메서드가 인수 배열을 원래 형식으로 다시 정렬할 수 있습니다.

메서드는 BindToMethod 메서드에서 Type.InvokeMember 사용됩니다.

바인더 구현에서 문자열 값을 숫자 형식 culture 으로 강제 변환할 수 있는 경우 매개 변수는 1000을 나타내는 문자열을 값으로 변환해야 Double 합니다. 1000은 다른 문화권에 의해 다르게 표현되기 때문입니다. 기본 바인더는 이러한 문자열 강제 변환을 수행하지 않습니다.

적용 대상

추가 정보