c# – 如何处理T4字符串模板?

我对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

点赞