Type.GetPropertyImpl Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
При переопределении в производном классе выполняет поиск указанного свойства, параметры которого соответствуют указанным типам аргументов и модификаторам, используя указанные ограничения привязки.
protected:
abstract System::Reflection::PropertyInfo ^ GetPropertyImpl(System::String ^ name, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, Type ^ returnType, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)]
protected abstract System.Reflection.PropertyInfo? GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, Type? returnType, Type[]? types, System.Reflection.ParameterModifier[]? modifiers);
protected abstract System.Reflection.PropertyInfo GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, Type returnType, Type[] types, System.Reflection.ParameterModifier[] modifiers);
protected abstract System.Reflection.PropertyInfo? GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, Type? returnType, Type[]? types, System.Reflection.ParameterModifier[]? modifiers);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)>]
abstract member GetPropertyImpl : string * System.Reflection.BindingFlags * System.Reflection.Binder * Type * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.PropertyInfo
abstract member GetPropertyImpl : string * System.Reflection.BindingFlags * System.Reflection.Binder * Type * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.PropertyInfo
Protected MustOverride Function GetPropertyImpl (name As String, bindingAttr As BindingFlags, binder As Binder, returnType As Type, types As Type(), modifiers As ParameterModifier()) As PropertyInfo
Параметры
- name
- String
Строка, содержащая имя свойства, которое требуется получить.
- bindingAttr
- BindingFlags
Побитовое сочетание значений перечисления, указывающее, как выполняется поиск.
–или–
- binder
- Binder
Объект, который определяет набор свойств и включает привязку, которая может включать выбор перегруженного члена, приведение типов аргументов и вызов элемента через отражение.
–или–
Ссылка null (Nothing в Visual Basic) используется DefaultBinder.
- returnType
- Type
Возвращаемый тип свойства.
- types
- Type[]
Массив Type объектов, представляющих число, порядок и тип параметров для получения индексированного свойства.
–или–
Пустой массив типа Type (т. е. type[] = new Type[0]), чтобы получить свойство, которое не индексировано.
- modifiers
- ParameterModifier[]
Массив ParameterModifier объектов, представляющих атрибуты, связанные с соответствующим элементом в массиве types . Привязка по умолчанию не обрабатывает этот параметр.
Возвращаемое значение
Объект, представляющий свойство, соответствующее указанным требованиям, если найдено; nullв противном случае .
- Атрибуты
Исключения
Несколько свойств находятся с указанным именем и соответствуют указанным ограничениям привязки.
name равно null.
–или–
types равно null.
–или–
Одним из элементов является typesnull.
types является многомерным.
–или–
modifiers является многомерным.
–или–
types и modifiers не имеют той же длины.
Текущий тип — это TypeBuilder, EnumBuilderили GenericTypeParameterBuilder.
Комментарии
Хотя привязка по умолчанию не выполняет обработку для ParameterModifier (modifiers параметр), можно использовать абстрактный класс System.Reflection.Binder, чтобы создать пользовательский привязчик, который обрабатывает modifiers.
ParameterModifier используется только для вызовов через взаимодействие с COM, и обрабатываются только параметры, передаваемые по ссылке.
Для определения свойств, которые необходимо включить в поиск, можно использовать следующие BindingFlags флаги фильтра:
Чтобы получить возврат, необходимо указать либо
BindingFlags.Instance, либоBindingFlags.Static.Укажите
BindingFlags.Public, чтобы включить общедоступные свойства в поиск.Укажите
BindingFlags.NonPublic, чтобы включить недоступные свойства (т. е. частные, внутренние и защищенные свойства) в поиск.Укажите
BindingFlags.FlattenHierarchy, чтобы включитьpublicиprotectedстатические элементы в иерархию;privateстатические элементы в унаследованных классах не включаются.
Для изменения работы поиска можно использовать следующие BindingFlags флаги модификатора:
BindingFlags.IgnoreCaseигнорировать регистрname.BindingFlags.DeclaredOnlyдля поиска только объявленных свойств на Type, а не свойств, которые были просто унаследованы.
См. System.Reflection.BindingFlags для получения дополнительной информации.