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



Download 6,27 Mb.
Pdf ko'rish
bet52/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   48   49   50   51   52   53   54   55   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

ПриМеЧание
На.самом.деле.в.таблицах.метаданных.манифеста.не.описаны.типы,.экспортируемые.
PE-файлом,.в.котором.находится.манифест .Цель.этой.оптимизации.—.уменьшить.
число.байт,.необходимое.для.хранения.данных.манифеста.в.PE-файле .Таким.образом,.
утверждения.вроде.«таблицы.метаданных.манифеста.включают.все.открытые.типы,.
экспортируемые.MultiFileLibrary dll.и.RUT netmodule»,.верны.лишь.отчасти .Однако.
это.утверждение.вполне.точно.отражает.логический.набор.экспортируемых.типов 
Построив сборку 
MultiFileLibrary dll
, можно изучить ее таблицы метаданных ма-
нифеста при помощи 
ILDasm exe
, чтобы убедиться, что файл сборки действительно 
содержит ссылки на типы из файла 
RUT netmodule
. Таблицы метаданных 
FileDef
и 
ExportedTypesDef
выглядят следующим образом:
File #1 (26000001)
Token: 0x26000001
Name : RUT.netmodule 
HashValue Blob : e6 e6 df 62 2c a1 2c 59 97 65 0f 21 44 10 15 96 f2 7e db c2
Flags : [ContainsMetaData] (00000000)
ExportedType #1 (27000001)
Token: 0x27000001
Name: ARarelyUsedType 


77
Объединение.модулей.для.создания.сборки
Implementation token: 0x26000001
TypeDef token: 0x02000002
Flags : [Public] [AutoLayout] [Class] [Sealed] [AnsiClass]
[BeforeFieldInit](00100101)
Из этих сведений видно, что 
RUT netmodule
— это файл, который считается ча-
стью сборки с маркером 
0x26000001
. Таблица 
ExportedType
показывает наличие 
открытого экспортируемого типа 
ARarelyUsedType
. Этот тип помечен 
маркером 
реализации
(implementation token) 
0x26000001
, означающим, что IL-код этого типа 
находится в файле 
RUT netmodule
.
рис. 2.1.
.Многофайловая.сборка.из.двух.управляемых.модулей.и.манифеста
ПриМеЧание
Для.любопытных:.размер.маркеров.метаданных.—.4.байта .Старший.байт.указывает.
тип.маркера.(0x01=TypeRef,.0x02=TypeDef,.0x26=FileRef,.0x27=ExportedType) .Пол-
ный.список.типов.маркеров.см .в.перечислимом.типе.CorTokenType.в.заголовочном.
файле.CorHdr h.из. NET.Framework.SDK .Три.младших.байта.маркера.просто.иден-
тифицируют.запись.в.соответствующей.таблице.метаданных .Например,.маркер.
реализации.0x26000001.ссылается.на.первую.строку.таблицы.FileRef.(в.большинстве.
таблиц.нумерация.строк.начинается.с.1,.а.не.с.0) .Кстати,.в.TypeDef.нумерация.строк.
начинается.с.2 
Любой клиентский код, использующий типы сборки 
MultiFileLibrary dll
, должен ком-
поноваться с указанием параметра компилятора 
/r[eference]:MultiFileLibrary.
dll
, который заставляет компилятор загрузить сборку 
MultiFileLibrary dll
и все файлы
перечисленные в ее таблице 
FileDef
. Компилятору необходимо, чтобы все файлы 
сборки были установлены и доступны. Если удалить файл 
RUT netmodule
, компи-
лятор C# выдаст следующее сообщение об ошибке:


78
Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   48   49   50   51   52   53   54   55   ...   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