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.GetProperties и т. д.). Набор методов фильтруется по имени, количеству аргументов и набору модификаторов поиска, определенных в связывателье. После выбора метода он будет вызван. На этом этапе проверяется специальные возможности. Поиск может управлять набором методов поиска на основе атрибута специальных возможностей, связанного с методом. Метод IBinder.BindToMethod
отвечает за выбор вызываемого метода. Связыватель по умолчанию выбирает наиболее конкретное совпадение.
Примечание
Ограничения доступа игнорируются для полностью доверенного кода. То есть к закрытым конструкторам, методам, полям и свойствам можно обращаться и вызывать с помощью отражения всякий раз, когда код является полностью доверенным.
В настоящее время этот метод не поддерживается. Тип можно получить с помощью Type.GetType или Assembly.GetType и использовать отражение для полученного типа.