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 этого метода используется для управления приведением типов данных в реализации привязчика, которые привязывают типы. В противном culturenullCultureInfo случае используется текущий поток.

names
String[]

Имена параметров, если имена параметров должны рассматриваться при сопоставлении, или null если аргументы должны рассматриваться как чисто позиционные. Например, имена параметров должны использоваться, если аргументы не предоставляются в позициальном порядке.

state
Object

После возврата метода содержит предоставленный привязкой объект, state который отслеживает изменение порядка аргументов. Привязыватель создает этот объект, а привязыватель является единственным потребителем этого объекта. Если state не null при возврате BindToMethod, Необходимо передать метод state методу ReorderArgumentArray(Object[], Object), если требуется восстановить args в исходный порядок, чтобы можно было получить значения параметров ref (параметры ByRef в Visual Basic).

Возвращаемое значение

Метод сопоставления.

Исключения

Для привязчика match по умолчанию содержит несколько методов, для которых одинаково хорошие совпадения args. Например, args содержит MyClass объект, реализующий IMyClass интерфейс, и match содержит метод, который принимает MyClass и метод, который принимает IMyClass.

Для привязки match по умолчанию не содержит методов, которые могут принимать аргументы, указанные в args.

Для привязки match по умолчанию используется null пустой массив.

Комментарии

Привязка по умолчанию учитывает оба параметра с значениями и массивами params (массивы ParamArray в Visual Basic). Таким образом, можно найти совпадение в тех случаях, когда args и match не содержат одинаковое количество элементов.

Привязыватель позволяет клиенту сопоставить массив аргументов обратно с исходной формой, если массив аргументов был манипулировал BindToMethod. Используйте эту возможность повторного сопоставления, чтобы вернуть аргументы по ссылке при наличии таких аргументов. При передаче аргументов по имени привязка переупорядочения массива аргументов. Параметр state отслеживает переупорядочение аргументов, что позволяет методу привязки ReorderArgumentArray изменить порядок массива аргументов в исходной форме.

Метод BindToMethod используется методом Type.InvokeMember .

Если реализация привязчика позволяет принуждать строковые значения к числовым типам, culture параметр необходимо преобразовать строку, представляющую 1000 в Double значение, так как 1000 представлено по-разному различными языками и региональными параметрами. Привязка по умолчанию не выполняет такие приведения строк.

Применяется к

См. также раздел