2010-11-02 43 views
0

我已經創建了一個AddInHost,通過它可以擴展VS Ide命令(右鍵單擊SolutionExplorerMenu)。使用T4或其他技術在VS 2008中生成ClassTemplate

現在我想使用AddIn從模板生成代碼。

我讀過很多關於T4代碼生成的文章,並嘗試了一些簡單的模板,但我沒有看到我如何在我的AddIn中使用T4技術。

對於模板我需要指定一些參數,我可以在模板中使用。 我需要參數

  • 命名空間
  • 類名
  • Methodcollection
  • PropertyCollection

我試圖用

<#@ property name="ClassName" type="System.String" processor="PropertyProcessor" #> 

但之後,我讀了一些文章中,我認爲這建議立即進行刪除d不能正常工作。

我的問題是,我找不到解決方案與T4和我的AddIn一起工作。

Addin中的所有命令都有一個「Perform」方法,其中寫入了所有特定於命令的實現。 在命令中我有一個對主機(= VS IDE)的引用,所以我可以完整地使用IDE模型。

如何在我的AddIn中使用T4創建基於模板的文件?
我應該怎麼做呢?
我應該通過ProjectItems.AddFromFile() 將文件添加到目標項目,還是我可以使用T4的功能?

我有點困惑,我怎麼能實現我的要求。

非常感謝。

回答

0

使用ITextTemplating服務。這裏是why

+0

這就是我之前的嘗試,但我沒有看到如何將ITextTemplating與我的CommandAction結合起來? 我應該在使用引擎時創建自定義的「ITextTemplatingEngineHost」嗎? 我應該通過ServiceProvider創建Engine/Host還是直接通過「new」初始化? – Khh 2010-11-03 11:28:45

相關問題