Tim*_*aes 3 .net c# t4 templates transformation
我正在创建一个.tt将文本转换为模型类的文件,以进行练习。
.cs生成一个文件,其中包含 all models,但我希望每个文件都model保存在.cs不同文件夹中自己的文件中。
实现这一目标的最佳方法是什么?
以下是如何从单个 T4 模板输出多个文件的简单示例。
使用SaveOutput-method 输出文件(Content1.txt、Content2.txt ..)创建到与 .tt 文件相同的文件夹,SaveOutputToSubFolder输出文件转到单独的文件夹(1\Content1.txt、2\Content2.txt ..)
<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System" #>
<#@ import namespace="System.IO" #>
<#@ output extension=".txt" #>
<#
for (Int32 i = 0; i < 10; ++i) {
#>
File Content <#= i #>
<#
SaveOutput("Content" + i.ToString() + ".txt");
//Uncomment following to write to separate folder 1,2,3
//SaveOutputToSubFolder(i.ToString(),"Content" + i.ToString() + ".txt");
}
#>
<#+
private void SaveOutput(string outputFileName) {
string templateDirectory = Path.GetDirectoryName(Host.TemplateFile);
string outputFilePath = Path.Combine(templateDirectory, outputFileName);
File.WriteAllText(outputFilePath, this.GenerationEnvironment.ToString());
this.GenerationEnvironment.Clear();
}
private void SaveOutputToSubFolder(string folderName, string outputFileName) {
string templateDirectory = Path.GetDirectoryName(Host.TemplateFile);
string newDirectoryName = Path.Combine(templateDirectory,folderName);
if(!Directory.Exists(newDirectoryName))
Directory.CreateDirectory(newDirectoryName);
string outputFilePath = Path.Combine(newDirectoryName, outputFileName);
File.WriteAllText(outputFilePath, this.GenerationEnvironment.ToString());
this.GenerationEnvironment.Clear();
}
#>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2409 次 |
| 最近记录: |