各位大侠,谁能帮我解释下C#中程序集和模块的概念啊,哪个范围更大些呢?程序集我知道,就是.dll或.exe

各位大侠,谁能帮我解释下C#中程序集和模块的概念啊,哪个范围更大些呢?程序集我知道,就是.dll或.exe,第1张

一个模块就是一个标准的让CLR执行的32位(PE32)或者64(PE64)位的windows的可执行文件。然而CLR事实上并不是模块打交道,而是直接和程序集打交道。程序集是个抽象的概念,一个程序集是由一个或者多个模块或者资源文件在逻辑上组合而成的文件,程序集对CLR来说是最小的可重用的单元。

程序集是在.net中的名称,CLR在许多方面将它用做基本的管理单元,比如版本跟踪、部署。

一般输出形式为dll或exe文件。

模块是在软件设计中的名称与语言无关,主要是为了在设计时,软件结构清晰,比如设计打印模块,就是为了实现打印功能,其他模块要打印时就调用它。在C#中这个模块可以是一个或多个dll或exe,或者在一个程序集中有几个模块,看你在系统分析时如划分的。

CLR常用简写词语,CLR是公共语言运行时,Common Language Runtime)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层 *** 作系统之间必要的分离。

.net框架中包括有一组.net框架类库(Framework Class Library,简称FCL)程序集,其中含 有几千个类型的定义,每个类型都提供了某种功能。

IL又称为(interpretative language 解释语言),我们.NET开发人员必定离不开IL,就算您没有学习,也一定可以在各处看到它的身影。而且IL也是.NET唯一懂得的语言,我们每天其实都在使用着ILIL是中间层语言

上层代码编译完成后都要转换为中间语言供CLR使用

IL为Intermediate Language

有时候也叫Microsoft Intermediate Language

中间语言使得在.Net中各种语言的方便交互成为了可能。

assembly, 这里把它翻译为配件, 以示和组件(Component)加以区别.

一个配件有时候是指一个EXE或者DLL文件, 实际上是一个应用程序(就是指带有主程序

入口点的模块)或者一个库文件. 但是配件实际上可以是由一个或者多个文件组成

(dlls, exes, html等等), 代表一组资源, 以及类型的定义和实现的集合. 一个配件也可

以包含对其它配件的引用. 所有这些资源、类型和引用都在一个列表(manifest)中描述?nbsp

U飧鳇anifest也是配件的一部分,所以配件是一个自我描述的,不需要其它附加的部件

对其描述!配件的另一个重要特性是,它是.Net环境下类型标识的一部分,也可以说

是基本单位。因为,区分一个类型的标识就是包含这个类型的配件名字加上类型名本身。

举个例子,配件A定义了类型T, 配件B也定义了同名类型T,但是.Net把这两个类型认为是

不同的类型。 注意,不要把配件(assembly)和名字空间(namespace)混淆起来。其实

名字空间仅仅是用来把类型名用树的形式组织起来的手段。对于运行是环境来讲,类型名

就是类型名,和名字空间一点关系都没有。 总之,记住配件名加上类型名唯一标识一个

运行时类型。 另外,配件也是.Net框架用于安全策略的基本单位,许多安全策略都是

基于配件的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12139323.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存