十、元数据概述
前面说过C#源文件经过C#编译器生成一个可执行的exe文件,该可执行的PE文件由以下几个部分组成:
(1)、PE32(+)头 Windows要求的标准信息
(2)、CLR头 小信息块(CLR模块特有的),这个头包含模块生成时所面向的CLR的major(主)和minor(次)版本号,一些标志,一个MethodDef token,该token制定了模块的入口方法(前提是该模块是CUI、GUI或Windows Store执行体).CLR头还包含了元数据的大小和偏移量.
(3)、元数据
(4)、IL
本文主要介绍元数据,元数据是由几个表组成的二进制数据块.一共有三种表,如下:定义表、引用表、清单表.
1、定义表
2、引用元数据表
以上是常用的定义元数据表和引用元数据表,当然常用的表不只是以上几种,还有其他的.
注:编译器编译源代码时,代码定义的任何东西都将在元数据表中创建一个记录项
3、ILDasm.exe
通过该工具可以查看托管模块的元数据构成,有需要时可以使用该工具查看完整的元数据信息.