欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 编程语言 > c# >内容正文

c#

clr via c# 3 读书笔记(2):第1章 clr执行模型 — 1.2 将托管模块组合为程序集 -凯发ag旗舰厅登录网址下载

发布时间:2025/1/21 c# 19 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 clr via c# 3 读书笔记(2):第1章 clr执行模型 — 1.2 将托管模块组合为程序集 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

实际上,clr直接打交道的是程序集,而不是模块。程序集是一个抽象的概念,首先,它是一个或多个模块或资源文件的逻辑组合(即程序集由多个模块和资源文件组成)。其次,它是复用、安全、版本的最小单元。根据所选择的编译器和工具的不同,可以生成单一文件或多个文件的程序集。在clr世界里,程序集就是我们称作组件(component)的东西。

程序集提供了一种方式,将一组文件看作一个单独的实体。

下图解释了什么是程序集。

在该图中,使用工具对托管模块和资源(或数据)文件进行处理。该工具生成了单一的pe32( )文件,代表文件的逻辑组合。该pe32( )文件包含一个叫做manifest的数据块。manifest是另一个元数据表的集合。这些表描述了组成程序集的文件、由这些文件所实现的公有导出类型、以及与程序集相关的资源或数据文件。

默认情况下,编译器会将产生的托管模块转换为一个程序集。也就是说,c#编译器生成的是一个包含了manifest的托管模块。其中的manifest表明程序集仅包含一个文件。对于仅包含一个托管模块且没有资源(或数据)文件的项目来说,程序集就是托管模块,并且在创建过程中,不需要执行其他操作。如果希望将一组文件组合到一个程序集之中,需要使用更多的工具(assembly linker,al.exe)及其命令行选项。

对于一个可重用、可部署(securable)、可实施版本管理(versionable)的组件来说,程序集可以将逻辑表示和物理表示相分离(解耦)。如何将代码和资源放置于不同的文件则完全取决于我们自己。

一个程序集的模块还包含被引用的程序集的一些信息(如其版本号)。这些信息使程序集能够自描述(self-discribing)。换句话说,为了执行程序集中的代码,clr可以确定程序集的直接依赖。(the clr can determine the assembly’s immediate dependencies in order for code in the assembly to execute)不需要再在注册表或活动目录领域服务(active directory domain services)中获取更多的信息。由于不再需要额外的信息,因此部署程序集比部署非托管组件要容易得多。

总结

以上是凯发ag旗舰厅登录网址下载为你收集整理的clr via c# 3 读书笔记(2):第1章 clr执行模型 — 1.2 将托管模块组合为程序集的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图