Поделиться через


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 имеют разную длину.

Комментарии

Хотя связыватель по умолчанию не обрабатывает ParameterModifier ( modifiers параметр ), можно использовать абстрактный System.Reflection.Binder класс для записи пользовательского связывателя, который обрабатывает modifiers. ParameterModifier используется только при вызове через COM-взаимодействие, и обрабатываются только параметры, передаваемые по ссылке.

Если значение параметра types равно null, аргументы метода не проверяются на соответствие условиям.

BindingFlags Следующие флаги фильтра можно использовать для определения методов, которые следует включить в поиск:

  • Для получения возврата необходимо указать или BindingFlags.InstanceBindingFlags.Static .

  • Укажите BindingFlags.Public , чтобы включить открытые методы в поиск.

  • Укажите BindingFlags.NonPublic , чтобы включить в поиск не открытые методы (то есть частные, внутренние и защищенные методы).

  • Укажите BindingFlags.FlattenHierarchy , чтобы включить public и protected статические члены вверх по иерархии; private статические члены в унаследованных классах не включаются.

Для изменения способа работы поиска можно использовать следующие BindingFlags флаги модификаторов:

  • BindingFlags.IgnoreCase , чтобы игнорировать регистр name.

  • BindingFlags.DeclaredOnly для поиска только методов, объявленных в Type, а не методов, которые были просто унаследованы.

Дополнительные сведения см. в разделе System.Reflection.BindingFlags.

См. также раздел

Применяется к