1.反射的定义:
反射是在运行时动态分析,操纵和创建对象的机制。——3个功能,依次在以下章节分析。
反射要访问存储于.NET程序集中的元数据,以发现原始代码方面的信息。
2.反射的后期绑定区别于C#中的后期绑定。
C#中采用override方法进行后期绑定——编译期间确定使用那个方法。
反射没有这个限制,直到运行期间才会确定。反射还可以绑定程序集和类型,根据元数据实现动态绑定。
3.类型安全:表示对象能够保证该类型实例所不允许的操作,不会强加于该类型的的某个实例之上——不做不该做的事情。
4.静态方法是(静态)早期绑定的——不能被继承。
可继承的实例方法是运行时绑定的,不可继承(sealed)的实例方法是(静态)早期绑定的。
5.访问元数据的两种方法:
从底部进入元数据:具体对象类型——包含该对象的程序集
从顶部进入元数据:从程序集直接获取。
6.元数据间关系图:
这里,程序集指的是Assebmly,包含版本,对其它程序集的引用以及资源文件等等。
而Module模块才是DLL或EXE文件,一个程序集可以包括多个模块。