我一直在阅读CLR与C#3.0和我一直在组件,模块和接头反映然而,事情变得复杂。 这是我的理解,但如果将是巨大的,如果有人可以澄清的东西多一点:
模块是包含IL代码和元数据的表的CSC.EXE结果。 元数据表包含三种不同的表格:
- 定义表,如 “ModuleDef,类型定义,PropertyDef,MethodDef,EventDef,FieldDef”
- 参考表,例如 “TypeRef,ModuleRef,MemberRef等。”
- 清单表**
组件是含有许多模块以及资源诸如图像,文档,PDF等的容器
- 这代表了可移植可执行PE文件的文件可以是.exe或.dll。 这些文件PE32或PE32 +头,CLR头,元数据,IL代码。
这些书说,议会是一个容器由模块组成的,它也说,托管模块是
管理模块:
被管理模块是一个标准的32位的Microsoft Windows可移植可执行(PE32)文件或需要的CLR以执行一个标准的64位的Windows可移植可执行(PE32 +)文件。
里希特,杰弗里(2010-02-05)。 通过C#(点燃位置696-697)CLR。 欧莱礼 - A. Kindle版。
大会的定义:
的组件是一个或多个模块或资源文件的逻辑分组。
里希特,杰弗里(2010-02-05)。 通过C#(点燃位置766-767)CLR。 欧莱礼 - A. Kindle版。
如此看来,托管模块实际上是来自同一本书拍摄的图像在大会的一部分。
PE32头属于组件,但是笔者还表示,它属于管理模块以及等
什么是这里的分离? 他为什么要使用模块和组件可互换甚至认为他们看起来不够独立。
被管理PE文件有四个主要部分:PE32(+)报头,该CLR头,元数据,和IL。 的PE32(+)头是,Windows期望标准信息。 的CLR头是信息的小块是特定于所需要的CLR(管理模块)模块。
里希特,杰弗里(2010-02-05)。 通过C#(点燃位置1628至1629年)CLR。 欧莱礼 - A. Kindle版。
也清楚的图像显示模块只有没有元数据PE32(+),CLR头,等你觉得清单和元数据可以互换使用?
而且还可以请你解释**清单表中的模块呢?