T4模板中的注释

58

这似乎是一个非常基本的问题,但我还没有找到一个MSDN文章或StackOverflow问题能够回答它:在T4模板中是否可以进行单行或多行注释?我并不想生成带有注释的代码(那很容易和直接),而是想注释掉我的T4标记块。这可能吗?


15
依我看,标题和帖子内容完全匹配,似乎是一个显而易见的问题等待被提出。FWIW表示"顺便提一下"。 - justSteve
2个回答

67
为了将注释包含在控制代码中,它们需要位于某种代码块内部,例如:
<# // Hello this is a comment #>

或者

<#+ // Hello this is a comment in a class feature block #>

有时候,如果你在意输出中的额外换行符,你需要将关闭标签推到下一行。
如果你想注释整个标记块,不幸的是没有一个直接的解决方案,结果会变得非常丑陋。
你可以通过转义你想要注释的标记来实现,像这样:
\<# my control code \#>

然后将其放置在另一个块的注释中,如下所示:
<# // \<# my control code \#> #>

12
T4编辑器似乎更喜欢<# /* ... */ #>这种语法——至少在高亮方面是这样。 - Kenneth K.
我找到了最好的关于注释T4模板的文档。谢谢! - Nelson Reis

19

添加块注释的最佳方法是使用 #if 和 #endif。

<#
   #if false
   foreach(var typeName in typeNames)
   { 
       var className = typeName + "Adapter";
#>
    // ...
<#  
    }
    #endif
#>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接