因为我使用的是MultipleOutputHelper,所以我可以控制所创建的文件。这使得在代码生成器中处理多个模板变得非常容易:
public class MyCodeGenerator : TemplatedCodeGenerator
{
protected override byte[] GenerateCode(string inputFileName, string inputFileContent)
{
ProcessTemplate(inputFileName, CodeGenerationResource.TemplateX);
ProcessTemplate(inputFileName, CodeGenerationResource.TemplateY);
// since we're using the MultipleOutputHelper class in the t4 templates, which generates the required files on its own, we don't have to return any bytes
return new byte[0];
}
private void ProcessTemplate(string inputFileName, string templateContent)
{
var fi = new FileInfo(inputFileName);
templateContent = templateContent.Replace("Sample.mmd", fi.Name);
base.GenerateCode(inputFileName, templateContent);
}
}