代码之家  ›  专栏  ›  技术社区  ›  BrunoLM

编译时如何生成代码?

  •  1
  • BrunoLM  · 技术社区  · 14 年前

    PostSharp ,编译时生成代码。

    怎么做到的?谁能举个简单的例子?

    1 回复  |  直到 14 年前
        1
  •  4
  •   Hans Passant    14 年前

    PostSharp是一个IL重写器。它加载由.NET编译器生成的程序集并修改生成的IL。调用这个“生成代码”只是在技术上是准确的,它当然不是那种C编译器可以编译的代码。

    你自己做这件事并不简单,你必须有理解IL的黑带技能。弄错了会产生很难诊断的问题。我认为有一些开源项目使用IL重写技术,比如弹簧.NET,他们应该是一个很好的起点,使这一权利。当我在谷歌上搜索“IL rewriter”时,我确实看到了很好的点击率。一定要在上面花费大量的时间。它也是一个高维护项目,一个新版本的.NET经常打破重写器。