2

我想知道是否可以在 VS2008 中直接调用 T4 自定义工具 TextTemplatingFileGenerator,例如使用插件。

我的情况是我在解决方案中有元数据(xml)文件。T4 模板读取这些文件以在与元数据文件相同的文件夹中生成 C# 类文件。

目前我有 T4 模板扫描解决方案以搜索特定扩展名并创建文件。如果能够运行使用元数据文件路径调用模板的加载项,那就太好了。请注意,我非常广泛地使用 VS 主机将生成的文件添加到项目中。

我想知道是否可以直接从加载项中调用 TextTemplatingFileGenerator 以及是否可以实现我想要的。

还要考虑的是我正在使用 T4toolbox。

问候,伊利亚斯

4

1 回答 1

1

是的,您当然可以调用 T4 服务来获取加载项。您不需要使用 TextTemplatingFileGenerator,它主要是服务的一个瘦包装器。

在加载项中,将您的 DTE 对象强制转换为 IServiceProvider,然后向它询问STextTemplating

将结果转换为ITextTemplating,然后为要转换的每个模板调用 ProcessTemplate 方法。如果您进行多次调用,则将它们括在对 Begin/EndErrorSession 的调用中以对输出进行重复数据删除。

回调和层次结构参数是可选的。

于 2011-12-07T17:10:13.560 回答