自定义 T4 文本转换

文本模板是 Visual Studio 的一项功能,可用于通过转换过程生成程序代码或其他文本文件。 使用 Visual Studio SDK,可以通过自定义文本模板指令处理器或文本模板主机来扩展默认模板转换过程。

本部分内容

文本模板转换过程:描述文本转换的工作原理,并解释模板主机和指令处理器的角色。

创建自定义 T4 文本模板指令处理器:指令处理器处理模板中的指令,例如 <#@template#>. 它在模板编译期间运行,并且可以加载程序集和其他资源。 它还可以插入将在运行时加载资源的代码。 通过定义自己的指令处理器,可以减少模板的复杂性。

在 VS 扩展中调用文本转换:如果要编写 Visual Studio 扩展(如菜单命令或事件处理程序),则扩展可以使用文本模板化服务转换任何文本模板。 可以使用 Session 对象将参数数据传递到模板中,并使用指令从模板 <#@parameter#> 中获取值。

使用自定义主机处理文本模板:当文本模板的代码执行时,主机提供对外部文件和应用程序状态的访问权限。 例如,在 Visual Studio 中运行文本转换的主机可以提供对 解决方案资源管理器的访问权限。 它还会在错误消息窗口中显示错误。 如果要在不同的上下文中运行文本转换,可以定义自己的主机,以便访问该上下文中可用的服务。

如果要编写 Visual Studio 扩展,请考虑使用现有的文本转换服务,而不是编写自己的主机。 有关详细信息,请参阅 在 VS 扩展中调用文本转换