TypeBuilder.InvokeMember Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вызывает указанный член. Вызываемый метод должен быть доступен и обеспечивать наиболее точное соответствие заданному списку аргументов с учетом ограничений заданного модуля привязки и атрибутов вызова.
public:
override System::Object ^ InvokeMember(System::String ^ name, System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, System::Object ^ target, cli::array <System::Object ^> ^ args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ namedParameters);
public override object? InvokeMember (string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object? target, object?[]? args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? namedParameters);
public override object InvokeMember (string name, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object target, object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] namedParameters);
override this.InvokeMember : string * System.Reflection.BindingFlags * System.Reflection.Binder * obj * obj[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] -> obj
Public Overrides Function InvokeMember (name As String, invokeAttr As BindingFlags, binder As Binder, target As Object, args As Object(), modifiers As ParameterModifier(), culture As CultureInfo, namedParameters As String()) As Object
Параметры
- name
- String
Имя вызываемого члена. Это может быть конструктор, метод, свойство или поле. Необходимо указать подходящий атрибут вызова. Обратите внимание, что можно вызвать член класса, заданный по умолчанию, передав в качестве имени члена пустую строку.
- invokeAttr
- BindingFlags
Атрибут вызова. Это должен быть одноразрядный флаг из BindingFlags
.
- binder
- Binder
Объект, позволяющий осуществлять привязку, приведение типов аргументов, вызов элементов, а также поиск объектов MemberInfo
с помощью отражения. Если указан модуль привязки null
, используется модуль привязки по умолчанию. См. раздел Binder.
- target
- Object
Объект, для которого следует вызвать указанный член. Если член является статическим, этот параметр игнорируется.
- args
- Object[]
Список аргументов. Это массив объектов, содержащий число, порядок и тип параметров вызываемого члена. Если параметров нет, должно быть указано значение NULL.
- modifiers
- ParameterModifier[]
Массив с такой же длиной, как у args
с элементами, представляющими атрибуты, связанные с аргументами вызываемого члена. Параметр имеет атрибуты, связанные с ним в метаданных. Они используются различными службами взаимодействия. Дополнительные сведения см. в спецификации метаданных.
- culture
- CultureInfo
Экземпляр объекта CultureInfo
, используемого для управления приведением типов. Если параметр имеет значение NULL, для текущего потока используется CultureInfo
. (Обратите внимание, что необходимо, например, преобразовать строку, представляющую 1000, в число с двойной точностью, поскольку для разных языков и региональных параметров 1000 представляется по-разному.)
- namedParameters
- String[]
Каждый параметр в массиве namedParameters
получает значение в соответствующем элементе в массиве args
. Если длина args
превышает длину namedParameters
, оставшиеся значения аргументов передаются по порядку.
Возвращаемое значение
Возвращает возвращаемое значение вызываемого члена.
Исключения
В настоящее время этот метод не поддерживается для неполных типов.
Комментарии
Метод будет вызываться, если число параметров в объявлении метода равно числу аргументов в указанном списке аргументов, а тип каждого аргумента может быть преобразован связывателем в тип параметра.
Связыватель найдет все методы сопоставления. Эти методы находятся в зависимости от типа запрашиваемой привязки (BindingFlags. InvokeMethod, BindingFlags.-Properties и т. д.). Набор методов фильтруется по имени, числу аргументов и набору модификаторов поиска, определенных в связывателе. После выбора метода он будет вызван. На этом этапе проверяется доступность. Поиск может управлять тем, какой набор методов выполняется в зависимости от атрибута доступности, связанного с методом. IBinder.BindToMethod
Метод отвечает за выбор вызываемого метода. Связыватель по умолчанию выбирает наиболее конкретное соответствие.
Примечание
Ограничения доступа игнорируются для полностью доверенного кода. Таким образом, закрытые конструкторы, методы, поля и свойства могут быть доступны и вызываться с помощью отражения всякий раз, когда код полностью надежен.
В настоящее время этот метод не поддерживается. Вы можете получить тип с помощью Type.GetType или Assembly.GetType и использовать отражение для полученного типа.