私はいくつかのT4ファイルを生成するためにいくつかのT4テンプレートを使用していますが、それらのほとんどは同じコードをたくさん共有していますので、自然に関数を作り、 T4ファイルにアクセスすることができます。コード生成のためにT4 .ttテンプレート内の別のファイルからコードを実行できますか?
しかし、実際に別のファイルに保存されているコードを使用する方法やGoogleを見つけることができないようです。
これは可能ですか?もしそうなら、それを行う方法の簡単な例がありますか?
私はいくつかのT4ファイルを生成するためにいくつかのT4テンプレートを使用していますが、それらのほとんどは同じコードをたくさん共有していますので、自然に関数を作り、 T4ファイルにアクセスすることができます。コード生成のためにT4 .ttテンプレート内の別のファイルからコードを実行できますか?
しかし、実際に別のファイルに保存されているコードを使用する方法やGoogleを見つけることができないようです。
これは可能ですか?もしそうなら、それを行う方法の簡単な例がありますか?
あなたの質問から、ソリューションの通常のテンプレートファイルでT4を使用しているように思えます。 この場合、<#@ include #>
ディレクティブを使用して、共有コードを引き出すことができます。これは、C/C++の#include
に似ている生のテキストの包含メカニズムであるため、他のファイルに共有するのに気を配ったり、少しでも動かすことができます。
docs hereを参照してください。
現在のところ、インクルードディレクティブはASP.Netビューのスキャフォールディングテンプレートでは機能しません。
通常のC#プロジェクトとコードを共有する場合は可能ですが、参照できるアセンブリに共有コードを作成する必要があります。 ディレクティブを使用して.cs
ファイルを直接プルすることはできません。ディレクティブがコントロールまたはクラスフィーチャブロック内にネストしないからです。
<#@ assembly #>
指示文hereを使用して、共有コードを含むヘルパーアセンブリを参照できます。
T4をどのように使用しているかに応じて、シナリオをもう少し詳しく教えてください。たとえば、Asp.netビュースキャフォールディングとソリューションの基本的な変換があります。 – GarethJ
@GarethJ t4ファイルはSQLでIDテーブルを検索しており、IDのタルブルと一致する列挙子を持つ.csファイルを生成しています。これまでのご協力ありがとうございます! =) – Kyle