アプリケーション、ドメイン、インフラストラクチャ、コアなど、多くのプロジェクトで c# asp.net コア カミソリ ページを生成したいと考えています。
Telosys が拡張可能で、カスタム コンソール プログラムを引数付きで呼び出すことができるかどうかを知りたいのですが、このプログラムは、以前のコード生成以降に開発者が行ったコードへの追加/変更の可能性を保持するために、いくつかのコード マージを実行できますか?
C# には、コードを分割する #region と呼ばれるいくつかのディレクティブを含めることができます。これらは「領域のみを再生成」し、開発者はこれらの領域の外に独自のコードを配置できます。彼のコードを保存する必要があります。C# の部分的なクラスとメソッドも役に立ちます。
新しく再生成されたコード(エンティティ クラスなど - プロパティを追加したり、プロパティ名、タイプ、注釈、タグなどを変更したりできます)を以前に生成されたエンティティ クラスにマージする機能が必要です。これは、コードを再生成できる#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.Syntax; したがって、この保存領域コードを使用するには、C# コンソール アプリケーションを使用する必要があります。
ありがとう、ラド