从t4预处理文本模板生成多个输出

时间:2013-02-27 09:22:25

标签: .net t4

我想知道是否有办法从我的预处理模板中生成多个文件?

1 个答案:

答案 0 :(得分:2)

当您调用“TransformText()”方法时,预处理模板将整个生成的代码作为字符串返回。这取决于您保存结果的文件。

您可以将令牌渲染到生成的代码中,只要您想要启动新文件,拆分返回的字符串并将每个部分保存在单独的文件中。

例如 - 如果这是您的预处理模板:

<#@ template #>

// This output text goes to the first file

NEW_FILE_TOKEN

// this output text goes to the next file

你的主叫代码就像这样:

var myTemplateInstance = new MyTemplate();
var result = myTemplateInstance.TransformText();

var fileContents = result.Split("NEW_FILE_TOKEN");
for(int i = 0; i < fileContents.Count; i++)
{
    System.IO.File.WriteAllText("File" + i.ToString() + ".txt", fileContents[i]);
}

你最终得到两个文件(File0.txt和File1.txt),一个包含第一个注释行,另一个包含第二个注释行。