我可以在T4 .tt模板中执行另一个文件中的代码来生成代码吗?

本文关键字:代码 文件 另一个 T4 tt 执行 我可以 | 更新日期: 2023-09-27 18:07:57

我使用几个T4模板来生成几个T4文件,它们中的大多数共享许多相同的代码,所以很自然地,我想从中制作一个函数,并将其放在所有T4文件都可以访问的不同文件中。

然而,我似乎找不到一种方法,或者谷歌的一种方法来实际使用存储在另一个文件中的代码。

这可能吗?如果有,有没有一个简单的例子说明如何做到这一点?

我可以在T4 .tt模板中执行另一个文件中的代码来生成代码吗?

从您的问题来看,听起来您只是在解决方案中的正常模板文件中使用T4。在这种情况下,您可以使用<#@ include #>指令来拉入共享代码。它是一种原始文本包含机制,类似于C/c++的#include,因此您可以将尽可能多或尽可能少的内容共享到其他文件中。

查看这里的文档。

值得注意的是,目前,include指令还不能在ASP中工作。. Net view脚手架模板。

如果您想与常规c#项目共享代码,这是可能的,但您需要将共享代码构建到可以引用的程序集中。这是不可能的,只是使用<#@ include #>指令直接拉入.cs文件,因为指令不嵌套在控制或类功能块。

您可以使用这里记录的<#@ assembly #>指令引用包含共享代码的辅助程序集。