c# - 使用 StyleCopAnalyzers (Roslyn) 时如何启用替代 StyleCop 规则(以 SX 为前缀)?

标签 c# .net stylecop static-code-analysis roslyn-code-analysis

对于现有的 C# Web 项目,我正在尝试基于 Roslyn 分析器设置 StyleCop 代码分析。 (DotNetAnalyzers/StyleCopAnalyzers)

我已经设法使它能够很好地满足我们所需的代码风格,只是我们不想使用这些默认规则:

  • SA1101:使用此前缀本地调用
  • SA1309:字段名称不得以下划线开头

相反,我们希望以某种方式启用 stylecop.pdelvo.com 中提到的这些替代规则 DisabledAlternative

  • SX1101:请勿在本地调用前添加“this”前缀。
  • SX1309:字段名称必须以下划线开头
  • SX1309S:静态字段名称必须以下划线开头

上述网站显示,这些替代规则甚至已实现代码修复,因此我希望它们可供使用。

我在网上反复搜索,只找到了介绍这些规则的提案帖子以及有关规则如何工作、如何抑制它们等的其他文档,但没有找到如何启用它们。

使用 GlobalSuppressions.cs 文件我只能抑制某些规则,但无法启用任何规则。

有关使用 stylecop.json 微调某些规则的文档也没有提及这一点。

如何启用这些替代规则?

调整现有代码以通过默认规则不是一个选项,简单地禁用 SA1101 和 SA1309 规则可以,但也不是最佳选择。

最佳答案

与其他规则非常相似。

  1. 右键单击项目 > 属性 > 代码分析
  2. 您应该会看到项目中当前使用的规则集。点击打开
  3. 您应该会看到按规则系列分组的规则列表,例如“StyleCop 分析器规则”、“Microsoft.CodeAnalysis.CSharp.Features”等。您所需的规则位于“StyleCop 分析器规则”下

您可以通过在过滤字段中输入 SX 来加快搜索速度

Filtered rules

检查您的规则,尝试构建项目,您应该会在使用 this. 的地方看到警告/错误

关于c# - 使用 StyleCopAnalyzers (Roslyn) 时如何启用替代 StyleCop 规则(以 SX 为前缀)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44438840/

相关文章:

c# - 有没有办法将设置从 Settings.StyleCop 同步到 ReSharper?

位置记录 : should be disabled? 中的 StyleCopAnalyzers/SA1313

c# - Nullable<T> 实现

c# - 使用 lambda 函数过滤掉重复的(基于所选列)查询结果

c# - 如何在 WinForms 中扩展控件?

.net - 我是否必须使用 Visual Studio 预览才能使用 MAUI?

c# - 从 exe 中检索 COM ProgID 而无需注册

c# - .NET 权限异常中的网络数据包嗅探

c# - 为什么单个循环会导致内存泄漏?

c# - 如何摆脱 StyleCop