1.4.3 Ildasm.exe
中间语言IL反汇编工具随.NET框架SDK一起提供,通常都位于SDK安装目录下的Bin子目录里。对于研究.NET程序集环境来说,它是非常有意义的。如果你开始使用.NET程序集和代码,这也是首先应该熟悉的工具之一。
要使用这个工具,最简单的方法是在命令行提示窗口中键入:
其中,/adv开关是可选的,用于打开高级浏览选项。这个命令会启动一个GUI,可以使用其中的File菜单来选择要浏览的程序集。注意,它不能打开位于GAC中的文件。
图1ˉ9的例子显示了在Ildasm中打开程序集时得到的输出。其内容以一种可读的层次格式显示,其中包含程序集名corecsharp1及其所有成员。
特定成员的底层IL(或CIL)指令也采用这种层次结构显示。例如,对于Conversion类,图中显示出它包括3个方法:Metric、conversion和metric,其源代码可以证实这一点:
 |
| 图1-9用Ildasm.exe 浏览程序集内容 |
在Metric上双击鼠标,可以看到另一个屏幕,其中显示出它的IL,如图1ˉ10所示。
 |
| 图1-10 查看IL |
Ildasm可以作为巩固IL和程序集概念的一个学习工具。当然,它也有一些实际用途。假设要使用一个没有任何文档的第三方组件(程序集),Ildasm就能作为一个有用的起点,它能很好地揭示出程序集的接口细节。
核心建议 Ildasm有一个FileˉDump菜单项,它可以将程序文档保存为文本文件。选择Dump Metainfo可以创建程序集的元数据信息,这是我们可读的,并且非常长;选择Dump Statistics可以查看程序集的一个概要统计,它会详细给出每部分所占的字节数。
【责任编辑:
雪花 TEL:(010)68476606-8007】