如何在我们的T4模板生成器中包含自定义实用程序类?

时间:2011-12-02 18:07:40

标签: vb.net t4

如何在我们的T4模板生成器中包含自定义实用程序类?我尝试将一个模块添加到项目中,但似乎没有办法将它包含在我的生成器中以使用它的方法。

感谢。

2 个答案:

答案 0 :(得分:5)

您无法从模板访问项目中的任何代码。即使你可以,它会如何执行?模板在设计时执行。

使用Inherits指令,给出实用程序类的名称。 http://technet.microsoft.com/en-us/query/bb126474请参阅“使用一组不同的实用程序方法”。您的类需要继承自Microsoft.VisualStudio.TextTemplating.TextTransformation

<#@ template inherits="MyUtilityClass" #>

那,或者您可以将模块构建到程序集中,然后从模板中引用程序集

<#@ assembly name="MyAssembly.Utilities" #>

或者您可以简单地将实用程序方法放在另一个模板的类功能块中,然后将其包含在主模板中

<#@ include file="MyUtilities.tt" #>

答案 1 :(得分:0)

如果您没有在ASP.Net MVC中使用模板,那么您可以将实用程序放在一个文件中并使用&lt;#@ include file =“foo.t4”#&gt;将其拉入的指令。将其放在&lt;#+ block#&gt;中的方法中然后打电话给它。

如果你正在使用MVC,那么根据@ILovePaperTowels可以使用基类。