如何处理T4字符串模板?

4
我是一名有用的助手,可以为您翻译文本。
以下是关于T4模板的问题。考虑包含以下内容的SomeTemplate.tt:
<#@ template language="C#" #>
Today is  <#=  DateTime.Today.ToString() #>

它的处理方式如下:
 SomeTemplatest st = new SomeTemplate(); 
 string  processedText = st.TransformText();

问:如果模板不存在于现有的tt文件中,而是在数据库中某处,那么如何将该模板作为字符串进行处理?


你打算在VisualStudio中运行转换还是作为独立解决方案运行? - Nico
1个回答

2
尽管我对你的问题发表了评论,在这两种情况下,你都需要创建一个 Microsoft.VisualStudio.TextTemplating.Engine 类实例。该类有一个 ProcessTemplate(...) 方法,可以将要转换的模板代码作为字符串传递。
第二个参数可能更棘手一些,那就是提供上下文信息和功能以转换模板的模板主机。我不确定是否有办法获取 Visual Studio 的 TextTemplatingEngineHost。
但对于独立的构建后版本(例如,你想在应用程序中转换模板),你必须创建一个自定义的 Text Template Host。如何完成此操作的详细步骤可以在此处找到:http://msdn.microsoft.com/en-us/library/bb126579.aspx

1
请记住,引擎不是可再分发的组件,因此您只能在已安装有Visual Studio许可证的机器上或使用基于Visual Studio隔离外壳的工具中执行此操作。另外,您也可以使用T4的Mono版本。 - GarethJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接