我想生成包含许多项目的 c# asp.net core razor 页面:应用程序、域、基础设施、核心等。
我想知道 Telosys 是否可扩展以允许使用参数调用自定义控制台程序:,因此该程序可以进行一些代码合并,以保留开发人员自上一次代码生成以来对代码所做的可能添加/更改?
C# 可以有一些称为#region 的指令来划分代码,这些将是“仅重新生成区域”,开发人员可以在这些区域之外放置自己的代码。我们需要保存他的代码。C# Partial 类和方法也可以提供帮助。
我希望能够将新重新生成的代码(例如实体类 - 我可以添加一些属性或更改一些属性名称、类型、注释、标签等)合并到以前生成的实体类中。这可以通过创建#region .... #endregion来完成,代码可以在其中重新生成,并且应该保留这些区域之外的所有代码。请参阅:efg.loresoft.com/en/latest/regeneration 所以我想知道是否有一种方法可以在 TMPGEN 文件夹中临时生成文件并允许一些“合并程序运行”,它将与以前生成的新代码合并之前确定是否需要合并的代码(开发人员添加了一些代码)(比较哈希)
这是来自 EntityFrameworkCore.Generator 工具的代码,它合并了现有区域https://github.com/loresoft/EntityFrameworkCore.Generator..EntityFrameworkCore.Generator.Core/Templates/CodeTemplateBase.cs具有受保护的虚拟方法:
void MergeOutput (string fullPath , string outputContent ) 表明 fullPath 是一个现有文件,而 outputContent 是解析模板的结果(新内容)。RegionParser 使用这些命名空间:Microsoft.CodeAnalysis.CSharp;和 Microsoft.CodeAnalysis.CSharp.Syntax;所以我需要使用 c# 控制台应用程序来使用这个保存器区域代码。
谢谢,拉德