使用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与我的CommandAction结合起来? 我应该在使用引擎时创建自定义的“ITextTemplatingEngineHost”吗? 我应该通过ServiceProvider创建Engine/Host还是直接通过“new”初始化? – Khh 2010-11-03 11:28:45