十、元数据概述

前面说过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

通过该工具可以查看托管模块的元数据构成,有需要时可以使用该工具查看完整的元数据信息.

原文地址:https://www.cnblogs.com/GreenLeaves/p/8485287.html