是否可以在生成的代码中重用 T4 class 功能?

Is it possible to reuse a T4 class feature in the generated code?

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

反过来:将您的 GetListOfItemsToLoopOver() 方法放在 class 中的独立 C# 源文件中,然后将该源文件添加到您的项目中。然后,您还可以将该源文件包含在您的 T4 模板中(使用 T4 Include directive)。

您将需要 T4 版本和非 T4 版本之间的细微差别,至少与 usingnamespace 以及 class 位有关,但是这很容易通过使用 #if T4...#endif 块来处理,并确保在 运行 模板时定义 T4 符号。

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