命名空间和程序集
大约 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组成;