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 представлено по-разному различными языками и региональными параметрами. Привязка по умолчанию не выполняет такие приведения строк.