命名空间和程序集
大约 2 分钟
命名空间和程序集
概述
- 命名空间可以使用句点符号,用于区分类型组织层次,句点符号声明的命名空间属于嵌套的命名空间;
 - 命名空间名称不要与类或类型名称相同;
 - 命名空间可以顺序也可以嵌套;
 - 命名空间内每一个类型名必须区别于其他类型;
 - 命名空间不是封闭的,在另一个源文件中再次声明它可以对其进行扩展,并编译成新的单一程序集;
 
using 指令
- using 命名空间名称;
 - using 别名 = 命名空间名称或类完全限定名;
 
程序集结构
程序集4个组成部分:清单、类型元数据、CIL代码、资源
清单
程序集名称标识符:由4个部分组成 -- 简单名、版本号、文化信息、公钥
组成程序集的文件列表;
指示程序集中内容位置的地图;
关于引用其他程序集的信息;
类型元数据:包含该程序集中定义的所以类型的信息;
CIL代码:包含程序集的所有中间代码;
资源(可选)
模块:多个文件的程序集
- 模块 = 主模块 + 次模块
 - 主模块:清单、到次模块的引用
 - 次模块文件名以.netmodul扩展名结尾
 
强命名程序集
- 强名称唯一标识了程序集;
 - 强命名程序集的内容不能被改变;
 
程序集的私有部署
程序不需要外部依赖,直接复制程序到同一目录下;
私有程序集所在的目录被称为应用程序目录;
私有程序集可以是强命名的也可以是弱命名的;
没有必要在注册表中注册组件;
要卸载一个私有程序集只要从文件系统删除即可;
共享程序集
- 放进GAC(全局程序集缓存)中的程序集称为共享程序集;
 - GAC中的程序集能被系统中其他程序集使用;
 - 只有强命名程序集能被添加到GAC;
 - GAC位于\Windows\Microsoft.NET\assembly中;
 - gacutil.exe命令行工具允许从GAC查看/l、添加/i、删除/u程序集;
 - 并肩执行:具有相同文件名不同标志符的程序集共存;
 
配置文件
- 包含关于应用程序的信息,由XML代码组成;
 - 配置文件用于告诉应用程序引用的不同版本的DLL;
 - 配置文件名由可执行程序的全名加.config组成;
 
