CLR
1.元数据 每个托管模块都包含元数据,主要有两种类型的表 1.描述源代码中定义的类型和成员 2.描述源代码引用的类型和成员 2.CLR头 包含使这个模块成为一个托管模块的信息 (可由CLR和一些实用程序进行解释) 头中包含 CLR版本,一些flag,托管模块入口方法(Main方
法) 的元数据,以及模块的元数据等
3.托管模块:源代码使用编译器编译后生成的IL代码和元数据 可以称作托管模块
4.元数据允许将一个对象的字段序列化到一个内存块中, 将其发送给另一台机器,然后反序列化,在远程机器上 重建对象的状态
5程序集: 程序集是一个或多个模块/资源文件的逻辑性分组. 程序集是重用,安全性以及版本控制的最小单元 在CLR世界中,程序集相当于一个组件.
6.响应文件 一个文本文件,其中包含一组编译器命令行开关. 执行csc.exe时,编译器会打开响应文件,并使用其中包含
的任何开关
7.一个托管PE文件(可移植执行文件)构成 PE32(+)头 :windows要求的标准信息 CLR头 : 小的信息块,是那些需要CLR的模块所特有的 CLR头中还包含模块内部的特定元数据
表的大小和偏移量 元数据 : 二进制数据块,由几个表构成 定义表 引用表 清单表 IL : 中间代码
8. 编译器编译源代码时,代码定义的任何一样东西都会导致在某个
表中 创建一个记录项. (模块记录项,类型记录项..方法,字段,属性,参
数,事件...) 编译器还会检测源代码中引用的类型,字段,方法,属性和事件,并创
建 对应的元数据表记录项 在创建的元数据中,包含一组引用表,记录了所引用的内容
9.程序集: 一个或多个类型定义文件及资源文件的集合. 程序集中有一个文件容纳了清单 清单也是一组元数据表的集合,表中包含了作为程序集的
组成部分的那些文件的名称 此外还描述了程序集的版本,语言文化,发布者.
10重要提示: 总之,程序集是进行重用、版本控制和应用安全性设置的一个
基本单元。它允许将类型和资源文件划 分到单独的文件中。这样一来,无论你自己,还是你的程序集的用
户,都可以决定打包和部署哪些文件。 一旦CLR 加载包含了清单的那个文件,就可以确定在程序集的其他
文件中,具体是哪一些文件包含应用程 序引用的类型和资源。对于程序集的用户来说(其他开发人员),
他们只需知道含有清单的那个文件的名称。 这样一来,文件的具体划分方式在程序集的用户面前就是完全透明
的,以后可以自由地更改,不会干扰应 用程序的行为。 假如多个类型能共享相同的版本号和安全性设置,建议将所有
这些类型都放到一个文件中,而不要将 这些类型分散到多个文件中,更不要分散到多个程序集中。这是出
于对性能的考虑。每次加载一个文件或 程序集时,CLR 和Windows 都要花费一定的时间来查找、加载并初
始化程序集。需要加载的文件/程序集的 数量越少,性能越好,因为加载较少的程序集有助于减小工作集
(working set),并缓解进程地址空间的碎 片化。最后,nGen.exe 在处理较大的文件时,可以进行更好的优
化。
11.命名空间: 用于对相关的类型进行逻辑性分组,开发人员使用命
名空间来方便定位一个类型
12.