【问题标题】:How can I generate code when compiling?编译时如何生成代码?
【发布时间】:2010-09-24 13:28:44
【问题描述】:

有一些工具,例如PostSharp,可以在编译时生成代码。

它是如何完成的?谁能提供一些简单的例子?

【问题讨论】:

    标签: c# .net code-generation compilation


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-23
      • 1970-01-01
      • 2020-01-12
      • 2017-01-27
      • 1970-01-01
      • 2014-05-29
      • 2015-07-05
      相关资源
      最近更新 更多