我正在使用几个T4模板来生成多个T4文件,并且大多数都共享了很多相同的代码,所以很自然地我想用它制作一个函数并把它放在一个不同的文件中T4文件可以访问。
但是我似乎无法找到办法,或谷歌的方式来实际使用存储在另一个文件中的代码。
这可能吗?如果有,是否有一个如何做的简单例子?
答案 0 :(得分:8)
从您的问题来看,听起来您只是在解决方案中的普通模板文件中使用T4。
在这种情况下,您只需使用<#@ include #>
指令来提取共享代码即可。它是一种原始文本包含机制,类似于C / C ++的#include
,所以你可以随心所欲地移动到其他文件中。
请参阅文档here。
值得注意的是,目前,include指令在ASP.Net视图脚手架模板中不起作用。
如果您想与常规C#项目共享代码,那是可能的,但您需要将共享代码构建到您可以引用的程序集中。不能仅使用<#@ include #>
指令直接引入.cs
文件,因为指令不嵌套在控件或类功能块中。
您可以使用here记录的<#@ assembly #>
指令引用包含共享代码的帮助程序集。