2012-09-17 160 views
1

我正在嘗試創建一個T4模板,它從另一個單獨的程序集中繼承。 問題是如果我使用TextTemplatingFileGenerator自定義工具(也將模板指令的visibility屬性設置爲true),但是僅在使用TextTemplatingFilePreprocessor自定義工具時,纔會生成引用程序集中的T4模板。生成T4模板爲公開

我用錯了嗎?我是否應該使用不同的技術(包括,或建議here)?

UPDATE

在意見中的要求有關場景的一些細節: 在我的公司,我們需要一個可重複使用的架構產生物體(通常是數據庫實體的DTO,反之亦然)之間的轉換器/映射器。

我們厭倦了隱藏內部操作的框架,通常會導致運行時異常,特別是對於集合。

我想定義一個模板以便在數據映射項目中重用,我們通過反射從另一個組件中獲取對象的定義,並使用映射擴展方法生成靜態類。

感謝 弗朗西斯

+0

您試圖實現的整體場景是什麼? – FuleSnabel

+0

Francesco,您使用TextTemplatingFilePreprocessor時遇到了什麼問題? – GarethJ

回答

2

如果你想使用的模板都在第一裝配一個獨立的模板,並從它在第二繼承,那麼你最好在第一組件創建兩個模板。

對於第一個模板,請使用TextTemplatingFileGenerator幷包含實際的模板文本。 對於第二個模板,請使用TextTemplatingFilePreprocessor,並使內容僅包含一個單獨的<#@ include#>指令以包含第一個模板文件。

+0

我看了一下你的例子(http://blogs.msdn.com/b/garethj/archive/2011/01/04/vs2010-sp1-t4-template-inheritance-part-ii-the-core-template .aspx),我能夠實現我的目標。非常感謝你 – fra