相关文章  
  • 重要文件的铠甲:EFS加密
  • Windows2000支持的几种文件系统与比较
  • 你真的了解windows的自启动方式吗?
  • C# 中数组和类型转换的功能实现
  • C#中调用带回调函数和自定义结构体的DLL例程
  • 演练:在Excel中建立自定义菜单项
  • 定时检测邮件并且自动转发的例子
  • Internet Explorer 中编辑 OLE 嵌入文档
  • 应用程序互操作性:互用性基本原理
  • 动态汉化Windows技术的一些简要分析
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    教你通过 Emit 实现动态生成一个类1


      动态生成一个类对于AOP,O/R Mapping等技术非常有帮助。对于Java来说,问题不大,而对于.NET,则要麻烦些(主要麻烦在于实现代码的生成需要IL),故猜测这可能也是在AOP, O/R Mapping方面,Java走得略前的原因吧。
      
      麻烦归麻烦,非不能也,动态生成一个简单的类还不至于太难。
      
      假设有如下接口:
      interface IAnimal
      {
      void move();
      void eat();
      }
      
      希望能创建一个类生成器TypeCreator,并能以以下方式使用:
      
      TypeCreator tc=new TypeCreator(typeof(IAnimal));
      Type t = tc.build();
      IAnimal myAnimal= (IAnimal)Activator.CreateInstance(t);
      myAnimal.move();
      myAnimal.eat();
      首先,发现System.Reflection.Emit.TypeBuilder似乎就是一个现成的类生成器。 不过

    页码:[1] [2] [3] [4] [5] [6] [7] [8]1页、共8页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved