反射
1 请解释反射的基本原理和其实现的基石
2 .NET提供了哪些类型来实现反射
3 如何实现动态地发射程序集
4 如何利用反射来实现工厂模式
反射是一种动态分析程序集、模块、类型、字段等目标对象的机制,它的实现依托于元数据。元数据是存储在PE文件中的数据块,它详细记录了程序集后模块内部的结构、引用类型、程序集和清单。
在System.Reflection命名空间下,.NET提供了丰富的实现反射机制的类型,可以达到读取元数据中所有信息并且动态创建类型对象的功能。
示例:对程序集进行动态分析
首先创建一个程序集
1 namespace NET.MST.Sixth.SimpleAssembly 2 { 3 /// <summary> 4 /// 创建一个包含私有成员、特性、方法的简单类型 5 /// </summary> 6 [Serializable] 7 class SimpleAssembly 8 { 9 private String _MyString; 10 public SimpleAssembly(String mystring) 11 { 12 _MyString = mystring; 13 } 14 public override string ToString() 15 { 16 return _MyString; 17 } 18 19 static void Main(string[] args) 20 { 21 Console.WriteLine("简单程序集"); 22 Console.Read(); 23 } 24 } 25 }