什么是反射,反射能干嘛? 反射是:指程序可以访问、检测和修改它本身状态或行为的一种能力 反射是一种能力,所以给的定义就是说明了它能干嘛。 我们平时用反射主要做: - 获取类型的相关信息
- 动态调用方法
- 动态构造对象
- 从程序集中获得类型。
获取类型的相关信息反射的核心Type类,Type对象提供的属性和方法可以获取对象的一切信息,如:方法、字段、属性、事件...等等。 我们获取已加载程序集中类型的Type对象的几种方法:(以StringBuilder 类型为例) - 直接使用typeof操作符 Type T1 = typeof(StringBuilder);
- 通过类型实例 Type T2 = new StringBuilder().GetType();
- 通过Type类的静态方法 Type T3 = Type.GetType("System.IO.Stream");
不管使用那种,我们最终得到的结果都是一样的。 那么我们通过Type又能得到些什么信息呢? 获取类型本身信息(命名空间名、全名、是否是抽象、是否是类、、、等等)
|