C#反射(System.Reflection ) (转)
C#   System.Reflection   反射 
反射的概述 
   
  反射appDomain 的程序集 
   
  反射单个程序集 
   
  利用反射获取类型信息 
   
  设置反射类型的成员 
   
  通过反射创建类型的实例 
   
  反射类型的接口 
   
  反射的性能 
   
  反射的概述 
   
   反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类 定义表,一个字段定义表,和一个方法定义表等,。System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码 
   
  和反射相关的命名空间(我们就是通过这几个命名空间访问反射信息): 
   
  System.Reflection.MemberInfo 
   
   System.Reflection.EventInfo 
   
   System.Reflection.FieldInfo 
   
   System.Reflection.MethodBase 
   
   System.Reflection.ConstructorInfo 
   
   System.Reflection.MethodInfo 
   
   System.Reflection.PropertyInfo 
   
   System.Type 
   
   System.Reflection.Assembly 
   
  反射的层次模型: 
   
   
  注:层次间都是一对多的关系 
   
  反射的作用: 
   
  1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现 有对象中获取类型 
   
  2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射。 
   
  3. 反射主要应用与类库,这些类库需要知道一个类型的定义,以便提供更多的功能。 
   
  应用要点: 
   
  1. 现实应用程序中很少有应用程序需要使用反射类型 
   
  2. 使用反射动态绑定需要牺牲性能 
   
  3. 有些元数据信息是不能通过反射获取的 
   
  4. 某些反射类型是专门为那些clr 开发编译器的开发使用的,所以你要意识到不是所有的反射类型都是适合每个人的。 
   
   
   
  反射appDomain 的程序集 
   
   当你需要反射AppDomain 中包含的所有程序集,示例如下: 
   static void Main 
   
   { 
   
   //通过GetAssemblies 调用appDomain的所有程序集 
                                                                                                                                                                              
 
                    
                     
                    
                