Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Рефлексия





Просмотр метаданных самой сборки

Просмотр (части) метаданных типа Саг

В метаданных класса Саг указан базовый класс типа (System.Object) и различные флаги, которые описывают то, каким образом был создан тип. Для метода приводится имя, принимаемые параметры и возвращаемое значение. автоматическое поле приводит к генерации компилятором приватного вспомогательного поля (по имени <PetName>k BackingField) и двух методов (в случае свойства, доступного для чтения и записи), которыми в рассматриваемом примере являются getPetName () и setPetName (). И, наконец, само свойство отображается в метаданных .NET на внутренние методы get /set с использованием маркеров Setter и Getter.

 

В окне метаданных утилиты ildasm.exe можно также просматривать метаданные .NET, описывающие саму сборку, для обозначения которых используется маркер Assembly. User Strings обязательно документирует все присутствующие в кодовой базе строковые литералы.

Рефлексией (reflection) называется процесс обнаружения типов во время выполнения. С применением служб рефлексии те же самые метаданные, которые отображает утилита ildasm.exe, можно получать программно в виде удобной объектной модели. Например, рефлексия позволяет извлечь список всех типов, которые содержатся внутри определенной сборки * . dll или * . ехе. Как и в любом другом пространстве имен, в System.Reflection (которое поставляется в составе сборки mscorlib.dll) содержится набор взаимосвязанных типов.

 

Assembly   В этом абстрактном классе содержатся статические методы, которые позволяют загружать сборку, исследовать ее и производить с ней различные манипуляции
AssemblyName   Этот класс позволяет выяснить различные детали, связанные с идентификацией сборки (номер версии, информация о культуре и т.д.)
Eventlnfo   В этом абстрактном классе хранится информация о заданном событии
MemberInfo   В этом абстрактном классе хранится информация о заданном поле
Methodlnfo   Этот абстрактный базовый класс определяет общее поведение для типов Eventlnfo, Fieldlnfo, Methodlnfo и Propertylnfo
Module   В этом абстрактном классе содержится информация по заданному методу
Parameterlnfo   Этот абстрактный класс позволяет получить доступ к определенному модулю внутри многофайловой сборки

Чтобы понять, каким образом использовать пространство имен System. Reflection для программного чтения метаданных .NET, необходимо сначала ознакомиться с классом System.Type.

Класс System.Type

Класс System. Type имеет набор членов, которые могут применяться для изучения метаданных типа, и большинство из которых возвращает типы из пространства имен System. Reflection. Например, член Туре. GetMethods () возвращает массив объектов типа Methodlnfo, член Type.GetFields () — массив объектов типа Fieldlnfo, и т.д.





Дата добавления: 2014-01-03; Просмотров: 214; Нарушение авторских прав?


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Рекомендуемые страницы:

Читайте также:
studopedia.su - Студопедия (2013 - 2020) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление
Генерация страницы за: 0.002 сек.