Type.GetConstructorImpl Метод

Определение

При переопределении в производном классе выполняет поиск конструктора, параметры которого соответствуют указанным типам аргументов и модификаторам, используя указанные ограничения привязки и указанное соглашение о вызовах.

protected:
 abstract System::Reflection::ConstructorInfo ^ GetConstructorImpl(System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, System::Reflection::CallingConventions callConvention, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)]
protected abstract System.Reflection.ConstructorInfo? GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, System.Reflection.CallingConventions callConvention, Type[] types, System.Reflection.ParameterModifier[]? modifiers);
protected abstract System.Reflection.ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, Type[] types, System.Reflection.ParameterModifier[] modifiers);
protected abstract System.Reflection.ConstructorInfo? GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, System.Reflection.CallingConventions callConvention, Type[] types, System.Reflection.ParameterModifier[]? modifiers);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)>]
abstract member GetConstructorImpl : System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.ConstructorInfo
abstract member GetConstructorImpl : System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.ConstructorInfo
Protected MustOverride Function GetConstructorImpl (bindingAttr As BindingFlags, binder As Binder, callConvention As CallingConventions, types As Type(), modifiers As ParameterModifier()) As ConstructorInfo

Параметры

bindingAttr
BindingFlags

Побитовое сочетание значений перечисления, указывающее, как выполняется поиск.

–или–

значение a

binder
Binder

Объект, который определяет набор свойств и включает привязку, которая может включать выбор перегруженного метода, приведение типов аргументов и вызов элемента через отражение.

–или–

Ссылка null (Nothing в Visual Basic) используется DefaultBinder.

callConvention
CallingConventions

Объект, указывающий набор правил, используемых в отношении порядка и макета аргументов, как передается возвращаемое значение, какие регистры используются для аргументов, а стек очищается.

types
Type[]

Массив Type объектов, представляющих число, порядок и тип параметров для получения конструктора.

–или–

Пустой массив типа Type (т. е. type[] = new Type[0]) для получения конструктора, который не принимает параметров.

modifiers
ParameterModifier[]

Массив ParameterModifier объектов, представляющих атрибуты, связанные с соответствующим элементом в массиве types . Привязка по умолчанию не обрабатывает этот параметр.

Возвращаемое значение

ConstructorInfo Объект, представляющий конструктор, соответствующий указанным требованиям, если он найден; в противном случае null.

Атрибуты

Исключения

types равно null.

–или–

Одним из элементов является typesnull.

types является многомерным.

–или–

modifiers является многомерным.

–или–

types и modifiers не имеют той же длины.

Текущий тип — это TypeBuilder или GenericTypeParameterBuilder.

Комментарии

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

Если точное совпадение не существует, будет предпринята попытка принурядить типы параметров, binder указанные в массиве types , чтобы выбрать совпадение. Если не binder удается выбрать совпадение, null возвращается.

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

  • Чтобы получить возврат, необходимо указать либо BindingFlags.Instance, либо BindingFlags.Static.

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

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

См. System.Reflection.BindingFlags для получения дополнительной информации.

Этот метод реализует GetConstructor.

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

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