目录
前言
做过重构的人都知道,在重构中要用到反射,什么时反射有很多人并不清楚,为了了解一下这个知识点,现在总结一下。
反射
所谓反射就是在.net Framework中提供的一种机制,在程序运行时能动态的加载程序集(Assembly),加载类型,创建对象,调用成员。
程序集其实就是我们常见的一些DLL文件,从这些文件中获取信息,说白了就是调用这个方法,程序集包括(类型元数据,程序集元数据,IL代码,资源文件)程序集元数据中有很多信息,比如公司明,版本号,命名空间等等,程序集在用之前已经是被.net编译好的。程序集包括exe和dll文件。
优点:
1、反射提高了程序的灵活性和扩展性。
2、降低耦合性,提高自适应能力。
3、它允许程序创建和控制任何类的对象,无需提前硬编码目标类。
缺点:
1、性能问题:使用反射基本上是一种解释操作,用于字段和方法接入时要远慢于直接代码。因此反射机制主要应用在对灵活性和拓展性要求很高的系统框架上,普通程序不建议使用。
2、使用反射会模糊程序内部逻辑;程序员希望在源代码中看到程序的逻辑,反射却绕过了源代码的技术,因而会带来维护的问题,反射代码比相应的直接代码更复杂。
可以从这里看出,里面包括很多的数据,其中包括了一些修饰符,对象,状态之类的数据。以及返回类型。