反射(9)程序集的加载和反射
一、 程序集的加载 程序集是 .NET Framework 应用程序的构造块;程序集构成了部署、版本控制、重复使用、激活范围控制和安全权限的基本单元。 绑定是查找与唯一指定的类型相对应的声明 ( 即实现 ) 的过程。根据此过程是发生在编译时还是运行时分为: a) 静态绑定:在生成时,编译器在程序集清单的元数据中记录静态引用。 b) 动态绑定:由于调用各种方法而动态构造的, EG : Assembly.Load 方法。 程序集如何加载请 参见下面链接: 1、 《(5)CLR 运行时探测程序集引用的步骤》 2、 《(6)程序集加载上下文》 3、 《(7)动态程序集加载Load()》 二、 程序集的反射 字段、构造器、方法、属性、事件和嵌套类型都可以被定义成一个类型的成员。 FCL(Framework Class Library— 框架类库 ) 定义了一个抽象基类 MemberInfo ,封装了一组所有类型成员都通用的属性。 对“动态绑定”的程序集进行成员绑定的规则可通过 Binder 类重写,作为搜索成员方法的参数传入;如果此参数传 null ,则使用默认绑定规则进行成员绑定同“静态绑定”。 1. 区分 DeclaringType 和 ReflectedType a) ReflectedType 获取用于获取 MemberInfo 的此实例的类对象。 返回的类对象总是执行反射的