我对T4模板有以下问题。 考虑SomeTemplate.tt包含:
<#@ template language="C#" #>
Today is <#= DateTime.Today.ToString() #>
它的处理方式如下:
SomeTemplatest st = new SomeTemplate();
string processedText = st.TransformText();
问:该模板不是现有的tt,而是数据库中的某个位置。 如何处理该模板作为字符串?
答案 0 :(得分:2)
尽管我对您的问题发表了评论,但在这两种情况下,您都需要创建Microsoft.VisualStudio.TextTemplating.Engine
类的实例。这个类有一个方法ProcessTemplate(...)
,您可以将模板代码传递给字符串。
第二个参数可能更棘手,它是一个模板主机,提供转换模板的上下文信息和功能。我不确定是否有办法获取Visual Studio的TextTemplatingEngineHost。
但是对于构建后的独立版本(例如,您希望在应用程序中转换模板),您必须创建自定义文本模板主机。可以在此处找到演练如何执行此操作:http://msdn.microsoft.com/en-us/library/bb126579.aspx