我写了一个简单的T4模板(称之为“web.tt”)来生成一个web.config文件。这是它的要点:
<#@ template debug="true" language="C#" hostSpecific="true" #>
<#@ output extension=".config" #>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- yadda yadda yadda -->
</configuration>
我可以从T4 Toolbox Generator类以编程方式访问此模板吗?我需要这样的东西:
<#@ include file="web.tt" #>
<#+
// <copyright file="Generator1.tt" company="Microsoft">
// Copyright © Microsoft. All Rights Reserved.
// </copyright>
public class Generator1 : Generator
{
protected override void RunCore()
{
string[] environmentNames = new string[] { "env1", "env2", "env3" };
foreach (string environmentName in environmentNames)
{
Template webTemplate = // programmatically fetch template in defined in web.tt above.
webTemplate.EnvironmentName = environmentName;
webTemplate.RenderToFile(environmentName);
}
}
}
#>
你能指出我正确的方向吗? :)
答案 0 :(得分:1)
模板具有TransformText()方法,您可以调用该方法以编程方式生成文件。
Template webTemplate = // programmatically fetch template in defined in web.tt above.
webTemplate.EnvironmentName = environmentName;
string output = webTemplate.TransformText();
答案 1 :(得分:1)
以下文章介绍了如何为T-SQL存储过程完全执行此操作。
http://www.olegsych.com/2008/09/t4-tutorial-creating-reusable-code-generation-templates/
换句话说,您将在web.tt中定义一个Template类,并在其中创建一个新的实例 你的发电机的RunCore。
希望这有帮助,
奥列格