Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Следовательно, тип члена можно определить, проверив свойство 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

 

Получает сборку для заданного типа

 

TypeAttributes Attributes Получает атрибуты для заданного типа

 

Type BaseType

 

Получает непосредственный базовый тип для заданно

 

го типа

 

String FullName

 

Получает полное имя заданного типа

 

Bool IsAbstract

 

Истинно, если заданный тип является абстрактным

 

Bool isArray

 

Истинно, если заданный тип является массивом

 

Bool IsClass

 

Истинно, если заданный тип является классом

 

Bool IsEnum

 

Истинно, если заданный тип является перечислением

 

bool IsGenericParameter Истинно, если заданный тип является параметром

 

обобщенного типа. (Более подробно обобщения рас

 

сматриваются в главе 18.)

 

Bool IsGenericType

 

Истинно, если заданный тип является обобщенным. (Бо

 

лее подробно обобщения рассматриваются в главе 18.)

 

String Namespace

 

Получает пространство имен для заданного типа

 

Применение рефлексии

С помощью методов и свойств класса Туре можно получить подробные сведения о типе данных во время выполнения программы. Это довольно эффективное средство. Ведь получив сведения о типе данных, можно сразу же вызвать его конструкторы и методы или воспользоваться его свойствами. Следовательно, рефлексия позволяет использовать код, который не был доступен во время компиляции.

Прикладной интерфейс Reflection API весьма обширен и поэтому не может быть полностью рассмотрен в этой главе. Ведь для этого потребовалась бы целая книга! Но прикладной интерфейс Reflection API имеет ясную логическую структуру, а следовательно, уяснив одну его часть, нетрудно понять и все остальное. Принимая во внимание это обстоятельство, в последующих разделах демонстрируются четыре основных способа применения рефлексии: получение сведений о методах, вызов методов, конструирование объектов и загрузка типов данных из сборок.

Получение сведений о методах

Имея в своем распоряжении объект класса Туре, можно получить список методов, поддерживаемых отдельным типом данных, используя метод GetMethods (). Ниже приведена одна из форм, подходящих для этой цели.

MethodInfo[] GetMethods()

Этот метод возвращает массив объектов класса Methodlnf о, которые описывают методы, поддерживаемые вызывающим типом. Класс Methodlnfo находится в пространстве имен System.Reflection.

Класс Methodlnfo является производным от абстрактного класса MethodBase, который в свою очередь наследует от класса Member Inf о. Это дает возможность пользоваться всеми свойствами и методами, определенными в этих трех классах. Например, для получения имени метода служит свойство Name. Особый интерес вызывают два члена класса Methodlnfo: ReturnType и GetParameters ().





Поделиться с друзьями:


Дата добавления: 2016-12-03; Мы поможем в написании ваших работ!; просмотров: 405 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Бутерброд по-студенчески - кусок черного хлеба, а на него кусок белого. © Неизвестно
==> читать все изречения...

2414 - | 2335 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.