我最近开始对一个相当复杂的 T4 类进行单元测试。我已经取得了重大突破,但恐怕观察到的行为可能只是巧合(即,可能会在未来版本的 Visual Studio 中中断)
我基本上有这样的东西:
主模板.tt:
<#@ include file="generator.tt.cs" #>
然后在 generator.tt.cs 我有
//<#+
class code
{
....
}
//#>
观察到的行为是,我既可以使用 T4 模板中声明的类等,也可以正常编译代码文件。<#+
但是,是否在所有定义的行为中都在and#>
标记之前添加了注释?我将来会冒这种破坏的风险吗?
此外,我已经在 MonoDevelop 和 Visual Studio 2012 上对此进行了测试。它似乎对两者都有效。不过,Visual Studio 2008 的兼容性对我来说并不重要。