2.0 反射

Reflection: 1 dll-IL-metadata-反射 2 反射加载dll,读取module、类、方法、特性 3 反射创建对象,反射+简单工厂+配置文件 选修:破坏单例 创建泛型 反射反射,程序员的快乐 反射是无处不在的,MVC-Asp.Net-ORM-IOC-AOP 几乎所有的框架都离不开反射 反编译工具不是用的反射,是一个逆向工程 IL:也是一种面向对象语言,但是不太好阅读 metadata元数据:数据清单,描述了DLL/exe里面的各种信息 反射Reflection:System.Reflection,是.Net Framework提供的一个帮助类库,可以读取并使用metadata 1 反射调用实例方法、静态方法、重载方法 选修:调用私有方法 调用泛型方法 2 反射字段和属性,分别获取值和设置值 3 反射的好处和局限 反射的优点: 动态 反射的缺点: 1 使用麻烦 2 避开编译器检查 3 性能问题!!! 100w次循环-----性能差异160倍,确实很难接受 普通方法 41ms 反射 6512ms -----但是,换个角度分析下,100次循环,反射耗时0.65ms 也就是说,反射基本不会影响到你的程序性能,除非你循环太多了反射 缓存优化,把dll加载和类型获取 只执行一次 100w次循环-----性能差异160倍,确实很难接受 普通方法 48ms 反射 103ms 反射影响是不是更小了, MVC-Asp.Net-ORM-IOC-AOP都在用反射,几乎都有缓存 MVC&&ORM 启动很慢,完成了很多初始化,反射的那些东西 后面运行就很快 这才是使用反射的正确姿势!!! Libraries: 项目分层:UI控制台--数据库访问层---数据库访问层抽象---Model---Framework 把更新&删除实现一下, 把生成器做个单独项目,winform,配置下模板就更好