清单元数据表中的导出类型定义

Jeffer的书中说,清单元数据表中有一份名叫ExportedTypesDef的表,其中定义了所有的导出类型条目。但是我在查看单文件程序集的时候却没有发现元数据当中有ExportedTypes的定义。后来又仔细看了一下书才明白,为了节省文件空间,所以在元数据定义元数据表中所定义的导出类型是不会在ExportedTypesDef表中重复出来的。这也就是说,只有当一个程序集是由多个模块块文件组成的时候,其它模块文件中导出的类型才会在程序集清单中被定义。使用了这种定义方式。相当于在程序集清单中提供一个查找程序中所定义类型的索引。当CLR查找程序集中类型时,它会根据程序集清单ExportdTypesDef表的定义,在相应的模块文件当中查找到需要的类型定义。
原文地址:https://www.cnblogs.com/light/p/27963.html