您的位置:首页 > 其它

Essential .NET 读书笔记 [第二部分]

2005-11-27 22:14 344 查看
续前一篇( http://interma.cnblogs.com/archive/2005/11/24/283814.html

三. 第二章 组件
1. CLR模块包含代码,元数据,资源。CLR模块依然是WinNT的PE/COFF的可执行文件的扩展版,它其中的大部分内容作为不透明的数据存放在PE/COFF文件的.text部分中。
2. 4种模块输出种类:exe, winexe, library, module。其中只有module不能独立部署(程序级才是部署的原子单位),即CLR无法直接加载它。
3. 程序集(assembly)是由一个或多个模块所组成的。      
4. 程序集的元数据中包含程序集清单部分(assembly manifest,即.assembly,而不是.assembly extern),对于没有程序集清单的模块(module),CLR只能间接加载。
5. 程序集4部分名称(强名称):Name, Version, Culture, PublicKeyToken。
6. 含有Culture特性的程序集不能含有代码,它们是纯资源程序集(又称为satellite程序集)。也就是说包含代码的程序集都是culture-neutral的。
7. 强名称程序集会把Public Key附到程序集中。
8. CLR总是按需加载程序集。(Good Feature)
9. Assembly.LoadForm():直接通过程序集加载器加载(通过位置加载),完全忽略任何版本策略。
Assembly.Load():先通过程序集解析器解析,再通过程序集加载器加载。

10. 版本策略只能用在强名称程序集上边。
11. 版本策略的3个级别:应用程序策略(app.config)=>发行者策略(整合的资源)=>机器策略(machine.config)。其中要注意发行者策略一般用于组件,来标明组件那些版本可以互相兼容。(Good Feature)
12. 查找程序集文件的策略:[1] GAC => [2] CodeBase Hint (href指定位置) =>[3] Probing(AppBase目录和其子目录)

[待续...]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: