12
<#@ template debug="false" hostspecific="false" language="C#" #>

ここでホスト固有の属性は何を意味しますか。

4

2 に答える 2

8

ホスト固有が「true」に設定されたテンプレートはthis.Host、型ITextTemplatingEngineHost( MSDN ) のメンバーにアクセスできます。次に、たとえばそのメソッド「ResolvePath」を使用して、テンプレートへの入力に必要なファイルを見つけることができます。

これは、カスタム テンプレート エンジンを使用する場合にさらに便利です。ここで Oleg のブログを参照してください: http://www.olegsych.com/2008/02/t4-template-directive/

于 2013-03-14T12:54:51.740 に答える
5

HostSpecific フラグが設定されると、「this.Host」プロパティを使用できます。これは ITextTemplatingEngineHost 型であり、特にファイル パスの解決を行うことができます。

ただし、(ビルド時またはコマンド ラインからではなく) Visual Studio 内で使用する場合は、ホストを IServiceProvider にキャストして、Visual Studio のグローバル サービス プロバイダーに接続することもできます。

これにより、Visual Studio の API のいずれかを使用して、テンプレートのデータを検索したり、含まれているプロジェクトを操作したり、同様のアクションを実行したりできます。

これにより可能になる重要なシナリオは、CodeModel (または間もなく Roslyn) を使用してプロジェクト内のライブ ソース コードを解析し、それを生成メタデータのソースとして使用することです。

于 2013-03-15T20:04:46.457 に答える