使用T4或其他技术在VS 2008中生成ClassTemplate

问题描述:

我已经创建了一个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的功能?

我有点困惑,我怎么能实现我的要求。

非常感谢。

使用ITextTemplating服务。这里是why

+0

这就是我之前的尝试,但我没有看到如何将ITextTemplating与我的CommandAction结合起来? 我应该在使用引擎时创建自定义的“ITextTemplatingEngineHost”吗? 我应该通过ServiceProvider创建Engine/Host还是直接通过“new”初始化? – Khh 2010-11-03 11:28:45