Шилдт Герберт
Шрифт:
пользоваться для получения информации о типе данных во время выполнения. Класс Туре является производным от абстрактного класса System. Re flection. Member Inf о.
В классе Member Inf о определены приведенные ниже свойства, доступные только для чтения.
Свойство
Описание
Type DeclaringType
Тип класса или интерфейса, в котором объявляется отражаемый член
MemberTypes MemberType
Тип члена. Это значение обозначает, является ли член по
лем, методом, свойством, событием или конструктором
int MetadataToken
Значение, связанное к конкретными метаданными
Module Module
Объект типа Module, представляющий модуль (исполняемый файл), в котором находится отражаемый тип
string Name
Имя типа
Type ReflectedType
Тип отражаемого объекта
Следует иметь в виду, что свойство MemberType возвращает тип MemberTypes — перечисление, в котором определяются значения, обозначающие различные типы членов. К их числу относятся следующие.
/
MemberTypes.Constructor MemberTypes.Method MemberTypes.Field MemberTypes.Event MemberTypes.Property
Следовательно, тип члена можно определить, проверив свойство MemberType. Так, если свойство MemberType имеет значение MemberTypes .Method, то проверяемый член является методом.
В класс Memberlnf о входят два абстрактных метода: GetCustomAttributes и Is Defined . Оба метода связаны с атрибутами. Первый из них получает список специальных атрибутов, имеющих отношение к вызывающему объекту, а второй устанавливает, определен ли атрибут для вызывающего метода. В версию .NET Framework Version 4.0 внедрен метод GetCustomAttributesData , возвращающий сведения
о специальных атрибутах. (Подробнее об атрибутах речь пойдет далее в этой главе.)
Класс Туре добавляет немало своих собственных методов и свойств к числу тех, что определены в классе Memberlnf о. В качестве примера ниже перечислен ряд наиболее часто используемых методов класса Туре.
Метод
Назначение
Constructorlnfо [ ] GetConstructors EventInfo[] GetEvents Fieldlnfо[] GetFields Type [ ]
GetGenericArguments
Получает список конструкторов для заданного типа
Получает список событий для заданного типа Получает список полей для заданного типа Получает список аргументов типа, связанных с закрыто сконструированным обобщенным типом, или же список параметров типа, если заданный тип определен как обобщенный. Для открыто сконструированного типа этот
Окончание таблицы
Метод
Назначение
список может содержать как аргументы, так и параметры типа.
•
(Более подробно обобщения рассматриваются в главе 18.)
Memberlnfo[]
Получает список членов для заданного типа
GetMembers
Methodlnfo[]
Получает список методов для заданного типа
GetMethods
Propertylnfo[]
Получает список свойств для заданного типа
GetProperties
Далее приведен ряд наиболее часто используемых свойств, доступных только для
чтения и определенных в классе Туре.
Свойство
Назначение
Assembly Assembly
Получает сборку для заданного типа