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


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

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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