【发布时间】:2011-05-06 02:55:10
【问题描述】:
因此,无论何时保存,tt 模板都会重新生成每个文件。现在,太好了,它会生成文件。但是,我正在制作部分类来扩展其他类,但我只需要为我生成不存在的文件。那些存在的,我想保留。到目前为止,我在全球范围内没有找到一种可靠的解决方案......
在我下面的代码中,查找现有文件的异常无关紧要,因为模板将首先删除所有文件。然后它会重新生成。
我可以覆盖像“onsave”这样的方法吗?
// BEGIN CODE TO GENERATE EXTENSIONS
<#
foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name))
{
string fileName = entity.Name + ".Extension.cs";
string filePath = this.Host.TemplateFile.Substring(0,this.Host.TemplateFile.LastIndexOf(@"\"));
filePath = filePath + @"\Extensions\" + fileName;
if((File.Exists(filePath) && PreserveExistingExtensions == false) || !File.Exists(filePath))
{
fileManager.StartNewFile(fileName);
BeginNamespace(namespaceName, code);
bool entityHasNullableFKs = entity.NavigationProperties.Any(np => np.GetDependentProperties().Any(p=>ef.IsNullable(p)));
#>
<#=Accessibility.ForType(entity)#>
<#=code.SpaceAfter(code.AbstractOption(entity))#>partial class
<#=code.Escape(entity)#><#=code.StringBefore(" : ", code.Escape(entity.BaseType))#>
{
}
<#
EndNamespace(namespaceName);
}
}
fileManager.Process();
#>
【问题讨论】:
-
为什么不用生成的代码检查文件内容呢?据我所知,你正在控制这个过程。
标签: t4