Type.GetMethodImpl Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
GetMethodImpl(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
При переопределении в производном классе ищет указанный метод, параметры которого соответствуют указанному числу универсальных параметров, типам аргументов и модификаторам, используя для этого заданные ограничения привязки и соглашение о вызовах. |
GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[]) |
При переопределении в производном классе ищет указанный метод, параметры которого соответствуют указанным типам аргументов и модификаторам, используя для этого заданные ограничения привязки и соглашение о вызовах. |
GetMethodImpl(String, Int32, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])
- Исходный код:
- Type.cs
- Исходный код:
- Type.cs
- Исходный код:
- Type.cs
При переопределении в производном классе ищет указанный метод, параметры которого соответствуют указанному числу универсальных параметров, типам аргументов и модификаторам, используя для этого заданные ограничения привязки и соглашение о вызовах.
protected:
virtual System::Reflection::MethodInfo ^ GetMethodImpl(System::String ^ name, int genericParameterCount, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, System::Reflection::CallingConventions callConvention, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
protected virtual System.Reflection.MethodInfo? GetMethodImpl (string name, int genericParameterCount, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, System.Reflection.CallingConventions callConvention, Type[]? types, System.Reflection.ParameterModifier[]? modifiers);
protected virtual System.Reflection.MethodInfo GetMethodImpl (string name, int genericParameterCount, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, Type[] types, System.Reflection.ParameterModifier[] modifiers);
abstract member GetMethodImpl : string * int * System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo
override this.GetMethodImpl : string * int * System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo
Protected Overridable Function GetMethodImpl (name As String, genericParameterCount As Integer, bindingAttr As BindingFlags, binder As Binder, callConvention As CallingConventions, types As Type(), modifiers As ParameterModifier()) As MethodInfo
Параметры
- name
- String
Строка, содержащая имя искомого метода.
- genericParameterCount
- Int32
Число параметров универсального типа для метода.
- bindingAttr
- BindingFlags
Побитовое сочетание значений перечисления, указывающих способ проведения поиска.
-или-
Default для возврата null
.
- binder
- Binder
Объект, определяющий набор свойств и разрешающий привязку, что может включать выбор перегруженных методов, приведение типов аргументов и вызов члена с помощью отражения.
-или-
Пустая ссылка (Nothing
в Visual Basic) для использования свойства DefaultBinder.
- callConvention
- CallingConventions
Объект, который задает набор правил, используемых в зависимости от порядка и расположения аргументов, способа передачи возвращаемого значения, регистров, используемых для аргументов, и процесса очистки стека.
- types
- Type[]
Массив объектов Type, предоставляющий число, порядок и тип параметров искомого метода.
-или-
Пустой массив объектов типа Type (то есть Type[] types = new Type[0]), если требуется получить метод, который не имеет параметров.
-или-
null
. Если значение параметра types
равно null
, аргументы метода не проверяются на соответствие условиям.
- modifiers
- ParameterModifier[]
Массив объектов ParameterModifier, представляющих атрибуты, связанные с соответствующим элементом в массиве types
. Связыватель по умолчанию не обрабатывает этот параметр.
Возвращаемое значение
Объект, представляющий метод, который соответствует указанному числу универсальных параметров, типам аргументов, модификаторам, ограничениям привязки и соглашениям о вызовах, если они существуют, и null
, если их нет.
Исключения
Метод необходимо переопределить и вызвать в производном классе.
Применяется к
GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])
- Исходный код:
- Type.cs
- Исходный код:
- Type.cs
- Исходный код:
- Type.cs
При переопределении в производном классе ищет указанный метод, параметры которого соответствуют указанным типам аргументов и модификаторам, используя для этого заданные ограничения привязки и соглашение о вызовах.
protected:
abstract System::Reflection::MethodInfo ^ GetMethodImpl(System::String ^ name, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, System::Reflection::CallingConventions callConvention, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
protected abstract System.Reflection.MethodInfo? GetMethodImpl (string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, System.Reflection.CallingConventions callConvention, Type[]? types, System.Reflection.ParameterModifier[]? modifiers);
protected abstract System.Reflection.MethodInfo GetMethodImpl (string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, Type[] types, System.Reflection.ParameterModifier[] modifiers);
abstract member GetMethodImpl : string * System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.MethodInfo
Protected MustOverride Function GetMethodImpl (name As String, bindingAttr As BindingFlags, binder As Binder, callConvention As CallingConventions, types As Type(), modifiers As ParameterModifier()) As MethodInfo
Параметры
- name
- String
Строка, содержащая имя искомого метода.
- bindingAttr
- BindingFlags
Побитовое сочетание значений перечисления, указывающих способ проведения поиска.
-или-
Default для возврата null
.
- binder
- Binder
Объект, определяющий набор свойств и разрешающий привязку, что может включать выбор перегруженных методов, приведение типов аргументов и вызов члена с помощью отражения.
-или-
Пустая ссылка (Nothing
в Visual Basic) для использования свойства DefaultBinder.
- callConvention
- CallingConventions
Объект, который задает набор правил, используемых в зависимости от порядка и расположения аргументов, способа передачи возвращаемого значения, регистров, используемых для аргументов, и процесса очистки стека.
- types
- Type[]
Массив объектов Type, предоставляющий число, порядок и тип параметров искомого метода.
-или-
Пустой массив объектов типа Type (то есть Type[] types = new Type[0]), если требуется получить метод, который не имеет параметров.
-или-
null
. Если значение параметра types
равно null
, аргументы метода не проверяются на соответствие условиям.
- modifiers
- ParameterModifier[]
Массив объектов ParameterModifier, представляющих атрибуты, связанные с соответствующим элементом в массиве types
. Связыватель по умолчанию не обрабатывает этот параметр.
Возвращаемое значение
Если поиск выполнен удачно, возвращается объект, предоставляющий метод, который соответствует указанным требованиям; в противном случае возвращается null
.
Исключения
Найдено несколько методов с указанным именем и соответствующих указанным ограничениям привязки.
name
имеет значение null
.
Массив types
является многомерным.
-или-
Массив modifiers
является многомерным.
-или-
types
и modifiers
имеют разную длину.
Текущий тип — TypeBuilder или GenericTypeParameterBuilder.
Комментарии
Хотя связыватель по умолчанию не обрабатывает ParameterModifier ( modifiers
параметр ), можно использовать абстрактный System.Reflection.Binder класс для записи пользовательского связывателя, который обрабатывает modifiers
.
ParameterModifier
используется только при вызове через COM-взаимодействие, и обрабатываются только параметры, передаваемые по ссылке.
Если значение параметра types
равно null
, аргументы метода не проверяются на соответствие условиям.
BindingFlags Следующие флаги фильтра можно использовать для определения методов, которые следует включить в поиск:
Для получения возврата необходимо указать или
BindingFlags.Instance
BindingFlags.Static
.Укажите
BindingFlags.Public
, чтобы включить открытые методы в поиск.Укажите
BindingFlags.NonPublic
, чтобы включить в поиск не открытые методы (то есть частные, внутренние и защищенные методы).Укажите
BindingFlags.FlattenHierarchy
, чтобы включитьpublic
иprotected
статические члены вверх по иерархии;private
статические члены в унаследованных классах не включаются.
Для изменения способа работы поиска можно использовать следующие BindingFlags флаги модификаторов:
BindingFlags.IgnoreCase
, чтобы игнорировать регистрname
.BindingFlags.DeclaredOnly
для поиска только методов, объявленных в Type, а не методов, которые были просто унаследованы.
Дополнительные сведения см. в разделе System.Reflection.BindingFlags.
См. также раздел
- MethodInfo
- String
- BindingFlags
- Binder
- DefaultBinder
- CallingConventions
- ParameterModifier
- GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])
- GetMethods()