如何处理T4字符串模板?

时间:2013-02-01 08:21:40

标签: c# t4

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

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

它的处理方式如下:

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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