.NET类型反射、后期绑定与基于属性编程全解析
1. .NET程序集配置基础
在.NET编程中,程序集配置是一个关键环节。程序集分为私有和共享两种类型。私有程序集会被复制到客户端的子目录,而共享程序集若被赋予强名称,则会部署到全局程序集缓存(GAC)。客户端可以通过XML配置文件或发布者策略程序集来配置私有和共享程序集。
2. 类型元数据的必要性
2.1 元数据在.NET平台的重要性
元数据能够完整描述类型(类、接口、结构体、枚举和委托),是.NET平台的核心要素。众多.NET技术,如对象序列化、.NET远程处理、XML Web服务和Windows Communication Foundation(WCF),都需要在运行时发现类型的格式。此外,跨语言互操作性、编译器服务和IDE的智能感知功能也依赖于类型的具体描述。
2.2 元数据并非.NET首创
元数据并非.NET框架的全新概念,Java、CORBA和COM都有类似的概念。例如,COM类型库(本质上是编译后的IDL代码)用于描述COM服务器中的类型。.NET代码库同样支持类型元数据,但与COM IDL在语法上并无相似之处。
2.3 使用ildasm.exe查看元数据
可以使用ildasm.exe工具查看程序集的类型元数据,按下Ctrl + M组合键即可。以CarLibrary.dll为例,打开该程序集并按下Ctrl + M,就能看到相关的类型元数据。不过,ildasm.exe显示的.NET类型元数据非常详细,实际的二进制格式则更为紧凑。