4

我有以下关于 T4 模板的问题。考虑 SomeTemplate.tt 包含:

<#@ template language="C#" #>
Today is  <#=  DateTime.Today.ToString() #>

它是这样处理的:

 SomeTemplatest st = new SomeTemplate(); 
 string  processedText = st.TransformText();

问:什么是模板不是现有的 tt,而是在数据库中的某个位置。如何处理作为字符串的模板?

4

1 回答 1

2

尽管我对您的问题发表了评论,但在这两种情况下,您都需要创建Microsoft.VisualStudio.TextTemplating.Engine该类的实例。此类有一个方法ProcessTemplate(...),您可以将模板代码传递为要转换为字符串的方法。

第二个参数可能更棘手,它是一个提供上下文信息和功能来转换模板的模板主机。我不确定是否有办法获取 Visual Studio 的 TextTemplatingEngineHost。

但是对于构建后的独立版本(例如,您想在应用程序中转换模板),您必须创建自定义文本模板主机。可以在此处找到如何执行此操作的演练:http: //msdn.microsoft.com/en-us/library/bb126579.aspx

于 2013-02-01T14:57:18.867 回答