我有一个如下的T4生成器:
<#@ template language="C#" debug="false" hostspecific="true"#>
<#@ include file="EF6.Utility.CS.ttinclude"#>
<#@ import namespace="System.IO" #><#@
output extension=".cs"#>
<#foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>(itemCollection))
{
var fileName = entity.Name + "Controller.cs";
fileManager.StartNewFile(fileName);
}#>
我不希望T4生成器删除我的修改,所以我需要在文件存在期间停止生成怎么可能?
答案 0 :(得分:0)
您可以使用功能DoesFileExist
并在创建新文件时检查。如果它已经存在,那么您可以使用OutputFile
// Check for file existence
bool DoesFileExist(string filename)
{
return File.Exists(Path.Combine(GetCurrentDirectory(),filename));
}
// Get current folder directory
string GetCurrentDirectory()
{
return System.IO.Path.GetDirectoryName(Host.TemplateFile);
}
// Get content of file name
string OutputFile(string filename)
{
using(StreamReader sr =
new StreamReader(Path.Combine(GetCurrentDirectory(),filename)))
{
return sr.ReadToEnd();
}
}
写同一个文件:
// Write with original file
fileManager.StartNewFile(fileName);
this.Write(OutputFile(fileName));