Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 31

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 25 26 27 28 29 30 < 31 > 32 33 34 35 36 37 .. 320 >> Следующая

Как мы видим, структура сборки представлена в самом обычном формате с деревом и узлами. Каждый метод, вложенный класс, как и все остальные типы, представлены специальными значками (в текстовом дампе дизассемблера эти значки будут заменены на аббревиатуры, состоящие из трех символов). Самые распространенные значки и соответствующие им аббревиатуры ILDasm ны в табл. 1.4.
54 Глава 1 • Философия .NET
F D:\WIWr\MicroSoft.NET\Framework\vl.a.Z204\msi
QIe View Цеір
9 9 ffi ft-
D; WIN H ТАМ icrosoft.NET \FrameworkW1 .C.2204Vmc<xlib.dll > MANIFEST
MbosolLW'n32
System
iL
9
Щ System.ComponenlModel
Щ System ConliguratioriAsseaiblies
9 System. Diagnostics
Щ System, Globatization
9 System IO
if 9 System, lO.lsolatedStoiage
ffi (_ConsoleStream
* p_Error
Bin-arvReadet
- V .class public auto ansi > extends Syslem.rJbiect
• MasCha/BytasSiie: private steticlfteief int32= inl 32(0x0 OOOJ. ..V m_bulr"er: private unsigned int8[| V m_charButlei: private wchar[]
і- V m_chaiBytes ; piivale unsigned int8[]
I--V m decode: private class Svslem.Text.Decoder
-
.assembly rnsMilib as "mscoriib"
LIJ"
Рис. 1.5. ILDasm.exe — ваш лучший друг в мире .NFiT
Таблица 1.4. Условные обозначения в ILDasm
3 нач ки Соответствующие Значение ILDasm аббревиатуры
в текстовом дампе
(.dot) Показывает, что для типа может быть отображена дополнительная информация. В некоторых случаях двойной щелчок на этом значке позволяет перейти к связанному с ним узлу в дереве
W [NSP] Пространство имен
ш [CLS] Класс. Вложенные классы представлены в формате <внешний_класс>$< внутренний„класо
J [VCL] Структура
It [INT] Интерфейс
¦ [FLD] Поле (то есть открытые данные), определенное некоторым типом
Q [STF] поле (то есть поле, которое принадлежит всем объектам данного класса)
[MET] Метод
<& [STM] Статический метод
А [PTY] Свойство
Как получить дополнительную информацию о пространствах имен и типах 55
Помимо просмотра информации о типах и их членах, f LD;tsm позволяет также получать информацию об инструкциях IL, относящихся к выбранному вами типу. В качестве примера можно найти и щелкнуть два раза мышью на значке конструктора по умолчанию для класса System. lO.BinaryWriter. Откроется отдельное окно, подобное представленному на рис. 1.6.
.* BitidrvWriter::. cctor: voidO
, .1?IxI
„inethoc private hidebysig аресіліпвме rtspeciAlaaa« eteci*, void . CCtOE () CiI managed
I/ Code зіге .maxstack 8
Ib_0000: IL_QQ05: IL-DDOa:
newob] stsfid
ret
11 (Oxb)
instance void System. iO.BinaryWrit claea System.lO.BinaryWriter Syate
} end of method BinaryWricsr; ; ,cctor
iL___I
Рис. 1.6. Просмотр кода IL в ILDasm
Выгрузка в файл иерархии типов и членов сборки
ILDasm обладает замечательной возможностью выгружать иерархию исследуемой вами сборки в текстовый файл. Потом, к примеру, полученный дамп можно изучать в любимой кофейне (или пивной). Чтобы создать текстовый дамп, откройте нужную сборку, в меню File выберите команду Dump TreeView и укажите имя для создаваемого текстового файла. Обратите внимание, что графические значки будут заменены соответствующими текстовыми аббревиатурами, как это показано в табл. 1.4. Пример текстового дампа представлен на рис. 1.7.
Выгрузка в файл вместе с инструкциями IL
В файл можно выгружать не только типы и члены типов исследуемой вами сбо р-ки, но и относящийся к объектам сборки код IL. Для этого в ILDasm предназначена другая команда: File > Dump. По умолчанию для дампов с инструкциями IL используется расширение На рис. 1.8 представлен код IL, относящийся к методу Ge tType() сборки mscoiiib.dll (мы подробно рассмотрим этот метод в главе 7).
Просмотр метаданных типов
В ILDasm есть еще одна возможность, о которой обязательно следует упомянуть. С помощью ILDasm можно просматривать метаданные типов — ту информацию о типах сборки, которую генерирует .NET-совместимый компилятор для среды выполнения .NET. Для просмотра метаданных типов достаточно загрузить сборку в ILDasm и нажать клавиши CtrL+M. Метаданные типов для приложения TestApp.exe .(мы его вскоре создадим) представлены на рис. 1.9.
56 Глава 1 • Философия .NET
ffi cufe.tkt - notepad
Fie Edt r-croat Help _ - ¦ ' _¦
_[MOD] D:\WINNT\coitiplus\v2000.l4.l8l2\mscorl1b. dll
НИИ
STF STF
¦stf;
STF] STF-^F
int
І гї
MANIFEST nspj Ml СГ OS oft. Win32
_[CLS] OAVaM ant Lib
class auto ansi sealed extends System.ObIест STF AlphaBool : public static literal 1nt32 cv_0B3ect : private static literal int32 calendarHi r1 : public static literal 1nrt32 elassTypes : static assembly initanly class s LocalBool : public static literal 1nt32 = int Nouseroverride : public static literal int32 NoValueProp : public static literal 1nt32 - 1 varcmp_eq : private static literal 1nt32 - In private static literal int32 - in private static literal int32 - in
STF STF]
VARCMP J3T VARCMP_LT
Рис. 1.7. Текстовый дамп иерархии сборки, созданный ILDasm
И 1.••.1.it МЛ Т.'.!"
File Edit jnjpru j&fc
.method /"06000002*/ public hldebysig
Предыдущая << 1 .. 25 26 27 28 29 30 < 31 > 32 33 34 35 36 37 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100