2013-03-14 19 views

回答

6

主機專用設置爲「true」的模板可以訪問類型爲ITextTemplatingEngineHostMSDN)的成員this.Host。然後,您可以使用例如其方法「ResolvePath」以便在模板中查找輸入所需的文件。

當您使用自定義模板引擎時,這更加有用。 見奧列格的博客在這裏:http://www.olegsych.com/2008/02/t4-template-directive/

+0

'Olegsych'鏈接不再有效 – Tatranskymedved 2017-05-24 08:32:32

4

您可以使用「this.Host」屬性一旦HostSpecific標誌設置,它的類型是ITextTemplatingEngineHost,並允許你做除其他事項外文件路徑解析。

但是,在Visual Studio中使用時(不是在構建時或從命令行),您還可以將主機強制轉換爲IServiceProvider並連接到Visual Studio的全局服務提供者。

這允許您使用Visual Studio的任何API來查找模板的數據,或者操縱您包含的項目或類似的操作。

這樣做的一個關鍵方案是使用CodeModel(或很快Roslyn)解析項目中的實時源代碼並將其用作生成元數據的源代碼。