托管模块与程序集

来源:互联网 发布:网络电话卡代理 编辑:程序博客网 时间:2024/05/18 03:45
  • CLR实际上并不是和托管模块来打交道的,它直接打交道的是程序集。
  • 程序集是一个或者多个托管模块,以及一些资源文件的逻辑组合。
  • 程序集才是组件复用,以及实施安全策略和版本策略的最小单位。
  • 在程序集中有一个清单,描述了组成程序集的文件。
  • 默认情况下,编译器会将产生的托管模块转换为一个程序集。也就是说,c#编译器产生的是一个包含了清单的托管模块。其中的清单表明程序集中仅包含了一个文件。对于仅包含一个托管模块,并且没有资源文件的项目来说,程序集就是托管模块,而且在创建过程中,不需要执行其它的任何步骤,比如不需要执行链接各个文件。如果希望将一组文件合并到一个程序集中,我们还需要程序集连接器AL
  • 对于一个可重用、可部署、可实施版本管理的组件来说,程序集允许我们分离它的逻辑表示和物理表示。如何将代码和资源划分到不同的文件中完全取决于我们自己。例如我们可以将一些很少使用的类型或者资源放在一个单独的程序集文件中,需要的时候才从web上下载,如果没有用到的话,就不会被下载,即节省空间又节省安装时间。
  • 程序集中的模块还包含它所引用的程序集的一些信息(比如版本号信息)。这些信息使得一个程序集可以自描述。换句话说,CLR知道执行一个程序集所需要的所有内容,它不需要再在注册表或者AD里获取额外的信息,因此程序集的部署比非托管组件的部署容易的多。
原创粉丝点击