1

T4 を使用して、部分クラスのプロパティを生成したいと考えていました。.TT ファイルが、拡張したいクラス ファイルと同じプロジェクトにあるという構成の問題が発生しています。したがって、アセンブリを .TT ファイルに含める必要がある場合は、ロックされます。ビルド前にコマンド ラインを実行しようとしましたが、問題は、VS が常にプロジェクトで .TT ファイルを再コンパイルしようとすることです。

私が考えることができる唯一の解決策は、.tt ファイルの名前を .t4 に変更し、ビルド前のコマンドを TextTransform -out と共に使用して、プロジェクト ディレクトリに .cs ファイルを作成することです。

誰でもこれを行うためのよりクリーンな方法を考えることができますか?

4

1 に答える 1

3

拡張する必要がある部分クラスのメタデータを読み取るために Reflection を使用するテンプレートがロックの原因であると仮定すると、CodeModel を使用すればロックの問題を解決できます。この API は Visual Studio によって提供され、部分クラスをコンパイルしたり、コンパイルされた DLL をロードしたりする必要なく、ソース ファイルからメタデータを直接取得できます。このアプローチを使用する T4 コード ジェネレーターの例を次に示します。

于 2008-12-29T15:09:10.137 に答える