如何为 C# 生成自定义 StyleCop 规则 - 条件编译预处理器指令
Posted
技术标签:
【中文标题】如何为 C# 生成自定义 StyleCop 规则 - 条件编译预处理器指令【英文标题】:How to generate custom StyleCop rule for C# - Conditional Compilation Preprocessor Directives 【发布时间】:2012-07-11 08:30:49 【问题描述】:是否可以编写自定义 C# StyleCop 规则来评估条件编译预处理器指令,如 #if、#elif、#else、#endif?
我们正在一个需要我们使用条件编译符号的环境中进行开发,我想在此基础上添加我们的自定义编码约定。
这可以通过CsDocument.WalkDocument
- 方法实现吗,还是我必须使用其他方法?
(FxCop 在这里无法使用,因为它适用于已编译的二进制文件)。
【问题讨论】:
【参考方案1】:是的,这是可能的,但 CsDocument.WalkDocument
重载将无济于事,因为预处理器指令仅表示为标记。它们没有对应的元素、语句或表达式。
要为条件编译指令编写规则,您需要检查 CsDocument.Tokens 集合。例如:
foreach (var directive in document.Tokens
.Where(t => t.CsTokenClass == CsTokenClass.ConditionalCompilationDirective)
.Cast<ConditionalCompilationDirective>())
// ...
【讨论】:
以上是关于如何为 C# 生成自定义 StyleCop 规则 - 条件编译预处理器指令的主要内容,如果未能解决你的问题,请参考以下文章