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