【发布时间】:2011-08-23 15:04:24
【问题描述】:
这似乎是一个基本问题,但我一直无法找到 MSDN 文章或 StackOverflow 问题来回答它:是否可以在 T4 模板中制作行 cmets 或阻止 cmets?我不希望使用 cmets 生成代码(这很简单直接),而是注释掉我的 T4 标记块。这可能吗?
【问题讨论】:
-
FWIW,在我看来,标题和 OP 完美匹配,似乎是一个相当明显的问题等待被问。
这似乎是一个基本问题,但我一直无法找到 MSDN 文章或 StackOverflow 问题来回答它:是否可以在 T4 模板中制作行 cmets 或阻止 cmets?我不希望使用 cmets 生成代码(这很简单直接),而是注释掉我的 T4 标记块。这可能吗?
【问题讨论】:
要将 cmets 作为控制代码的一部分,它们需要位于某种代码块中,例如
<# // Hello this is a comment #>
或
<#+ // Hello this is a comment in a class feature block #>
如果您对输出中的额外换行符敏感,有时您需要将关闭标记推到下一行。
如果你想注释掉整块标记,不幸的是没有一个简单的解决方案,结果变得相当丑陋。
您可以通过转义您想要评论的标签来做到这一点,如下所示:
\<# my control code \#>
然后将其放在另一个块中的注释中,如下所示:
<# // \<# my control code \#> #>
【讨论】:
<# /* ... */ #> 语法——至少在高亮方面。
添加块注释的最佳方法是使用#if 和#endif
<#
#if false
foreach(var typeName in typeNames)
{
var className = typeName + "Adapter";
#>
// ...
<#
}
#endif
#>
【讨论】: