1

T4 文本模板不仅可用于生成代码,还可以使用 Visual Studio 生成任何类型的文本。

我已经阅读了有关 T4 的博客和教程,据我所知,Visual Studio 在后台动态构建一个类,编译并运行该类中的代码以构建文本输出。

是否可以看到该类的源代码?

4

1 回答 1

2

是的,最简单的方法是在解决方案资源管理器中选择模板文件时更改属性窗口中的自定义工具。

默认情况下,它将是“TextTemplatingFileGenerator”。

如果您将自定义工具更改为“TextTemplatingFilePreprocessor”,您将获得基础模板类,而不是生成到项目中的模板输出。

准确地说,这段代码与幕后运行的代码并不完全相同,但会非常接近。

如果您需要绝对准确的代码,您应该不理会自定义工具,但在 <#@ template #> 指令上设置 debug="true" 标志。然后,这会将生成的代码留在您的 %TEMP% 目录中随机命名的“.cs”或“vb”文件中。只需按时间对目录进行排序,它应该在顶部。

于 2012-11-29T22:41:34.797 回答