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, который используется для управления приведения типов данных в реализациях связывателя, выполняющих приведение типов. Если параметр culture
имеет значение null
, для текущего потока используется объект CultureInfo.
- names
- String[]
Имена параметров, если они должны учитываться при сопоставлении, либо значение null
, если аргументы должны считаться чисто позиционными. Например, необходимо использовать имена параметров в том случае, если аргументы не передаются в порядке по их позиции.
- state
- Object
После возврата из этого метода параметр state
содержит предоставленный связывателем объект, который отслеживает изменение порядка аргументов. Связыватель создает этот объект и является его единственным объектом-получателем. Если параметр state
не равен null
в результате возврата из метода BindToMethod
, необходимо передать параметр state
в метод ReorderArgumentArray(Object[], Object), чтобы восстановить исходный порядок параметра args
, например, с целью получить возможность извлекать значения параметров ref
(в Visual Basic — параметров ByRef
).
Возвращаемое значение
Соответствующий метод.
Исключения
В связывателе по умолчанию параметр 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 по-разному представлено разными языками и региональными параметрами. Связыватель по умолчанию не выполняет подобного преобразования строковых типов.