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

时间:2013-04-05 20:44:46

标签: c# code-generation t4

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

但是我似乎无法找到办法,或谷歌的方式来实际使用存储在另一个文件中的代码。

这可能吗?如果有,是否有一个如何做的简单例子?

1 个答案:

答案 0 :(得分:8)

从您的问题来看,听起来您只是在解决方案中的普通模板文件中使用T4。 在这种情况下,您只需使用<#@ include #>指令来提取共享代码即可。它是一种原始文本包含机制,类似于C / C ++的#include,所以你可以随心所欲地移动到其他文件中。

请参阅文档here

值得注意的是,目前,include指令在ASP.Net视图脚手架模板中不起作用。

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

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