【问题标题】:Inject C# code before build在构建之前注入 C# 代码
【发布时间】:2011-07-24 19:07:45
【问题描述】:

如何在编译前在现有 C# 代码(不是 MSIL)中注入新代码,但不更改 .cs 文件?

【问题讨论】:

  • 使用部分方法/类无济于事?
  • 不,它没有帮助。我需要在类的不同属性中注入很多类似的代码。

标签: c# build compilation inject


【解决方案1】:

你可以看看PostSharp

【讨论】:

  • 使用 PostSharp,我可以在运行时注入代码,但不能在编译之前注入。
  • 我很确定 PostSharp 会在编译后、运行时之前注入代码。
  • 你说:“我很确定 PostSharp 会在编译后注入代码……”,但我需要在编译前注入代码。
  • 我知道,我在纠正你,“使用 PostSharp,我可以在运行时注入代码”
【解决方案2】:

您可以使用Text Template Transformation Toolkit (T4) 来处理这种情况。

【讨论】:

    【解决方案3】:

    使用写入partial class 文件的 T4 模板。这是 Visual Studio 使用的模式——自动生成的代码放在部分文件中,而您的代码放在主 .cs 文件中。

    【讨论】:

      【解决方案4】:

      您可以使用FodyWeavlynMSIL injection "IL Weaving" 一起使用

      【讨论】:

        猜你喜欢
        • 2019-03-24
        • 1970-01-01
        • 2016-07-18
        • 1970-01-01
        • 2017-12-15
        • 1970-01-01
        • 2019-10-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多