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);
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);
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
Побитовое сочетание значений перечисления, указывающих способ проведения поиска.
-или-
Default для возврата null
.
- binder
- Binder
Объект, определяющий набор свойств и разрешающий привязку, что может включать выбор перегруженного члена, приведение типов аргументов и вызов члена с помощью отражения.
-или-
Пустая ссылка (Nothing
в Visual Basic) для использования свойства DefaultBinder.
- returnType
- Type
Возвращаемый тип свойства.
- types
- Type[]
Массив объектов Type , предоставляющий число, порядок и тип параметров искомого индексированного свойства.
-или-
Пустой массив объектов типа Type (то есть Type[] types = new Type[0]), если требуется получить неиндексированное свойство.
- modifiers
- ParameterModifier[]
Массив объектов ParameterModifier, представляющих атрибуты, связанные с соответствующим элементом в массиве types
. Связыватель по умолчанию не обрабатывает этот параметр.
Возвращаемое значение
Объект, предоставляющий свойство, которое соответствует указанным требованиям, если такое свойство найдено; в противном случае возвращается null
.
Исключения
Найдено несколько свойств с указанным именем и соответствующих указанным ограничениям привязки.
name
имеет значение null
.
-или-
types
имеет значение null
.
-или-
Один из элементов в types
имеет значение null
.
Массив 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.