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