Net framework 5, а также среды Visual Studio 2012 и C#


использование отражения для создания



Download 6,27 Mb.
Pdf ko'rish
bet475/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   471   472   473   474   475   476   477   478   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

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


642
Глава.23 .Загрузка.сборок.и.отражение
тип, интерфейсы и ассоциированные с ним флаги. Остальные типы из пространства 
имен 
System.Reflection
дают возможность запрашивать поля, методы, свойства 
и события типа путем разбора соответствующих таблиц метаданных. Можно узнать, 
какими атрибутами (см. главу 18) помечена та или иная сущность метаданных. Есть 
даже классы, позволяющие определить указанные сборки и методы и возвращающие 
в методе байтовый IL-поток. Располагая этой информацией, можно легко создавать 
программы, сходные с программой 
ILDasm exe
компании Microsoft.
ПриМеЧание
Нужно.иметь.в.виду,.что.некоторые.типы.отражения.и.часть.их.членов.созданы.специ-
ально.для.разработчиков,.пишущих.компиляторы.для.CLR .Прикладные.разработчики.
обычно.не.используют.эти.типы.и.члены .В.документации.к.библиотеке.FCL.не.сказано.
четко,.какие.типы.предназначены.для.разработчиков.компиляторов,.а.какие.—.для.
разработчиков.приложений,.но.если.понимать,.что.некоторые.типы.и.члены.отражения.
предназначены.«не.для.всех»,.то.документация.становится.более.понятной 
В реальности приложениям редко требуются типы отражения. Обычно отра-
жение используется в библиотеках классов, которым нужно понять определение 
типа для предоставления расширенной функциональности. Например, механизм 
сериализации из FCL (см. главу 24) применяет отражение, чтобы выяснить, какие 
поля определены в типе. Объект форматирования из механизма сериализации 
получает значения этих полей и записывает их в поток байтов для пересылки по 
Интернету, сохранения в файле или отправки в буфер обмена. Проектировщики 
Microsoft Visual Studio используют отражение, чтобы определить, какие свойства 
следует показывать разработчикам при размещении элементов на поверхности 
веб-формы или формы Windows Forms во время ее создания.
Отражение также применяют, когда для решения некоторой задачи во время 
выполнения приложению нужно загрузить определенный тип из некоторой сборки. 
Например, приложение может попросить пользователя предоставить имя сборки 
и типа, чтобы явно загрузить ее, создать экземпляр данного типа и вызывать его 
методы. Концептуально подобное использование отражения напоминает вызов 
Win32-функций 
LoadLibrary
и 
GetProcAddress
. Часто привязку к типам и вызы-
ваемым методам, осуществляемую таким образом, называют 
поздним связыванием
(late binding) — в отличие от 
раннего связывания
(early binding), применяемого, 
когда требуемые приложению типы и методы известны при компиляции.

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   471   472   473   474   475   476   477   478   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish