【问题标题】:Is it possible to reuse a T4 class feature in the generated code?是否可以在生成的代码中重用 T4 类功能?
【发布时间】:2015-05-06 00:47:20
【问题描述】:

我正在使用 T4 模板创建 C# 文件。我想在生成的 C# 代码中重用我的模板 GetListOfItemsToLoopOver() 中的类功能。 是否可以在不创建新程序集的情况下执行此操作?

【问题讨论】:

  • 你能提供更多细节吗?使用 T4 向类添加特性的主要方法是通过 partial class 语法。这会奏效还是你有其他想法?
  • @GrantWinney 是的,这正是我的意思。

标签: c# visual-studio templates t4


【解决方案1】:

扭转局面:将您的 GetListOfItemsToLoopOver() 方法放在一个类的独立 C# 源文件中,然后将该源文件添加到您的项目中。然后,您还可以在 T4 模板中包含该源文件(使用 T4 Include directive)。

您将需要 T4 版本和非 T4 版本之间的细微差别,至少与 usingnamespace 以及可能还有 class 位有关,但使用 #if T4 可以轻松处理...#endif 块,并确保在运行模板时定义了 T4 符号。

很容易意外地更改源文件,使其仅适用于它使用的地方之一,因此请添加注释,说明在进行更改时应重新测试 T4 模板。

【讨论】:

  • 谢谢。我想我会将这些功能分开,因为我想要的主要内容不值得维护#if 块。
猜你喜欢
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
  • 2013-10-03
  • 2017-05-31
  • 2013-11-18
相关资源
最近更新 更多