Net支持反射功能以后,确实使我们Net程序眼前一亮啊,真是太神奇了,只需要传入字符串就可以完成功能.可以说,反射功能的引入,使我们在处理某些问题上更加得心应手.

传统的Db管理软件中,数据库字段的频繁改动,前台实体类的不断修改,使我们大为头痛.并不是说我们设计的Db结构不合理,而且客户的需求变动十分频繁,而且非常不可控,当然,如果对行业业务非常精通的话,是可以避免这个问题的.

使用反射功能,虽然可以传入字符串来解决某些问题,但如果遇到上述提到的数据库字段增删的问题,我们常用的方法是写入给客户升级的SQL语句,然后在公司修改某个DLL文件中的实体类以后,重新编译,打包测试通过后.将前台DLL文件和后台SQL语句一并发至各户处,实施员或客户的系统管理员将最新的文件覆盖,SQL语句生成,反射功能我们在生成实体类对象时会用到.

整个过程基本如此,其中,重新生成DLL文件的步骤,如果采用动态编译的方法处理,似乎就变得简单多了.大致思路如下

1. 修改Db表结构的步骤依旧没有变化.

2. 生成DLL文件,采用动态编译.即在系统打开时,根据Db中的对象生成实体类,再直接编译生成DLL文件,与上个方法相比,编译DLL的过程由系统自动执行了,而不需要我们在公司编译.这样我们只需要保证SQL语句升级正确就可以了.

3. 根据生成好的DLL文件,我们再使用反射就OK了

当然,动态编译的功能还远远不止于此,比如:生成一段NET字符串,动态执行等.有兴趣的童鞋,可以在博客园里搜索下,这里推荐一下这篇文章,确实不错.

地址:http://www.cnblogs.com/lichdr/archive/2004/10/20/54569.html

实现动态编译的方法其他很简单,如图-1所示.在我提供的下载文件中,有完整的方法,直接使用即可

图-1

我们再看看是如何使用这个方法来编译文件的,我们现在实现这样一个业务,客户需要新增加一张表,对应的实体也要增加,并实现实体的增删改查操作.如图-2所示,首先要制作好实体类的字符串

图-2

然后直接编译即可,如果编译成功,我们就直接可以使用反射对其操作了.如图-3所示

图-3

效果怎么样?这样处理的话,如果再遇到类似需求,我们需要做的事情,就是提供字符串就可以了,而不需要在公司生成DLL,由实施员负责覆盖.

技术的更新,会使我们在处理某些问题上变得更加容易和简单.

源文件

反射已经Out动态编译才能Hold住.Files

最新文章

  1. [Java] Maven 安装和配置
  2. stm32中断服务函数
  3. SDWebImage源码刨根问底
  4. Android SQLite数据储存方式
  5. Android 签名详解
  6. 将多个.a库合并为一个.a库的方法
  7. 【Zookeeper学习】Zookeeper-3.4.6安装部署
  8. Windows 7 SP1 x64 旗舰版 微软官方安装U盘的制作
  9. BZOJ2274: [Usaco2011 Feb]Generic Cow Protests
  10. Oracle 查询时间在当天的数据
  11. Android软件盘InputMethodManager
  12. docker镜像文件导入与导出
  13. 重温C语言小感
  14. 关于python 2.7要求输出汉字问题
  15. 矩阵树Matrix-Tree定理与行列式
  16. idea配置tomcat运行按钮置灰,下拉没有自定义的tomcat选项
  17. OCM 学习练习题目
  18. pandas的数据结构之series
  19. 跟随我在oracle学习php(4)
  20. xml ----> 几个常用dtd头文件模板

热门文章

  1. 关于ThinkPHP的一些编程技巧
  2. JAVA 报错exe4j中this executable was created with an evaluation 怎么办
  3. C#--串行化与反串行化
  4. bash和shell的关系
  5. 查看一个目录是否已经mount --bind
  6. EFI/UEFI BIOS启动
  7. 方法(method)和函数(function)有什么区别?
  8. Vue router 一个路由对应多个视图
  9. web.xml关于spring的讲解
  10. JAVA——泛型类和泛型方法(静态方法泛型)