Binder.BindToMethod(BindingFlags, MethodBase[], Object[], ParameterModifier[], CultureInfo, String[], Object) 메서드

정의

제공된 인수를 기반으로 지정된 메서드 집합에서 호출할 메서드를 선택합니다.Selects a method to invoke from the given set of methods, based on the supplied arguments.

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);
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 값의 비트 조합입니다.A bitwise combination of BindingFlags values.

match
MethodBase[]

일치 가능한 메서드 집합입니다.The set of methods that are candidates for matching. 예를 들어, Binder 개체가 InvokeMember에서 사용되는 경우 리플렉션에서 일치 가능 항목으로 확인된 메서드 집합은 일반적으로 올바른 멤버 이름을 가지므로이 매개 변수는 메서드 집합을 지정합니다.For example, when a Binder object is used by InvokeMember, this parameter specifies the set of methods that reflection has determined to be possible matches, typically because they have the correct member name. DefaultBinder에서 제공하는 기본 구현은 이 배열의 순서를 변경합니다.The default implementation provided by DefaultBinder changes the order of this array.

args
Object[]

전달되는 인수입니다.The arguments that are passed in. 바인더는 이 배열의 인수 순서를 변경할 수 있습니다. 예를 들어 names 매개 변수를 사용하여 위치 순서 외의 순서를 지정하는 경우 기본 바인더는 인수 순서를 변경합니다.The binder can change the order of the arguments in this array; for example, the default binder changes the order of arguments if the names parameter is used to specify an order other than positional order. 바인더 구현에서 인수 형식을 강제 변환하면 인수 형식과 값도 변경될 수 있습니다.If a binder implementation coerces argument types, the types and values of the arguments can be changed as well.

modifiers
ParameterModifier[]

형식이 수정된 매개 변수 시그니처로 작업하기 위해 바인딩을 사용하는 매개 변수 한정자의 배열입니다.An array of parameter modifiers that enable binding to work with parameter signatures in which the types have been modified. 기본 바인더 구현에서는 이 매개 변수를 사용하지 않습니다.The default binder implementation does not use this parameter.

culture
CultureInfo

형식을 강제 변환하는 바인더 구현에서 데이터 형식의 강제 변환을 제어하는 데 사용되는 CultureInfo의 인스턴스입니다.An instance of CultureInfo that is used to control the coercion of data types, in binder implementations that coerce types. culturenull이면 현재 스레드의 CultureInfo가 사용됩니다.If culture is null, the CultureInfo for the current thread is used.

참조 예를 들어, 바인더 구현에서 문자열 값을 숫자 형식으로 강제 변환할 수 있는 경우 이 매개 변수는 1000이 각 문화권마다 다르게 표현되므로 1000을 나타내는 StringDouble 값으로 변환하는 데 필요합니다.Note For example, if a binder implementation allows coercion of string values to numeric types, this parameter is necessary to convert a String that represents 1000 to a Double value, because 1000 is represented differently by different cultures. 기본 바인더는 이러한 문자열 강제 변환을 수행하지 않습니다.The default binder does not do such string coercions.

names
String[]

일치시킬 때 매개 변수 이름이 고려되는 경우 매개 변수 이름이고, 인수가 위치로만 간주되는 경우 null입니다.The parameter names, if parameter names are to be considered when matching, or null if arguments are to be treated as purely positional. 예를 들어, 인수가 위치 순서대로 제공되지 않는 경우 매개 변수 이름을 사용해야 합니다.For example, parameter names must be used if arguments are not supplied in positional order.

state
Object

메서드가 반환된 후 state에는 인수 순서 변경을 추적하는 바인더 제공 개체가 포함됩니다.After the method returns, state contains a binder-provided object that keeps track of argument reordering. 바인더는 이 개체를 만들고 이 개체의 유일한 소비자입니다.The binder creates this object, and the binder is the sole consumer of this object. null 매개 변수(Visual Basic에서는 BindToMethod 매개 변수)의 값을 검색할 수 있도록 state를 원래 순서로 복원하려는 경우와 같이, ref가 반환될 때 stateByRef이 아닌 경우 argsReorderArgumentArray(Object[], Object)에 전달해야 합니다.If state is not null when BindToMethod returns, you must pass state to the ReorderArgumentArray(Object[], Object) method if you want to restore args to its original order, for example, so that you can retrieve the values of ref parameters (ByRef parameters in Visual Basic).

반환

일치하는 메서드입니다.The matching method.

예외

기본 바인더에 대해 matchargs와 동등하게 일치하는 여러 메서드가 포함된 경우.For the default binder, match contains multiple methods that are equally good matches for args. 예를 들어, argsIMyClass 인터페이스를 구현하는 MyClass 개체가 포함되고 matchMyClass를 사용하는 메서드와 IMyClass를 사용하는 메서드가 포함되어 있습니다.For example, args contains a MyClass object that implements the IMyClass interface, and match contains a method that takes MyClass and a method that takes IMyClass.

기본 바인더에 대해 match에 제공된 인수를 받아들일 수 있는 메서드가 args에 포함되지 않은 경우For the default binder, match contains no methods that can accept the arguments supplied in args.

기본 바인더에 대해 matchnull이거나 빈 배열인 경우For the default binder, match is null or an empty array.

설명

기본 바인더는 고려 값이 있는 두 매개 변수 및 params 배열 (ParamArray Visual Basic의 배열)입니다.The default binder takes into account both parameters that have values and params arrays (ParamArray arrays in Visual Basic). 즉, 일치 하는 경우에도 찾을 수 있는 argsmatch 요소 수가 포함 되어 있지 않습니다.Thus, it is possible to find a match in cases where args and match do not contain the same number of elements.

바인더를 사용 하면 매핑할 인수 배열을 다시 원래 형식 인수 배열에서 조작 된 경우 클라이언트 BindToMethod합니다.The binder enables a client to map the array of arguments back to its original form if the argument array has been manipulated by BindToMethod. 이러한 인수를 사용할 수 있는 경우 참조로 인수를 돌아가는 데이 다시 매핑 기능을 사용 합니다.Use this remap capability to get back by-reference arguments when such arguments are present. 이름으로 인수를 전달 하는 경우 바인더 인수 배열을 다시 정렬 합니다.When you pass arguments by name, the binder reorders the argument array. 합니다 state 매개 변수 인수 순서 변경을 바인더를 사용할 수 있게 하는 추적 ReorderArgumentArray 원래 형태로 인수 배열을 다시 정렬 하는 방법입니다.The state parameter keeps track of argument reordering, thus enabling the binder's ReorderArgumentArray method to reorder the argument array to its original form.

합니다 BindToMethod 메서드를 사용 하 여는 Type.InvokeMember 메서드.The BindToMethod method is used by the Type.InvokeMember method.

적용 대상

추가 정보