如何抑制StyleCop警告“SA1201:所有方法必须放在所有属性之后。”?

时间:2010-07-20 07:49:43

标签: c# visual-studio-2010 stylecop

  

可能重复:
  How to suppress a StyleCop warning?

我正在编写一组私有/公共混合方法,需要放入同一区域(使用#region)。我使用了here中提到的方法,但我无法得到这个警告。请帮忙。

[编辑] 我只需要压制这个特殊的警告 - 不是整个项目/解决方案。但我愿意知道如何做到这一点^ _ ^

3 个答案:

答案 0 :(得分:1)

您是否乐意禁用整个项目的规则?如果是,请查看这是否适合您:Enabling or Disabling StyleCop Rules

答案 1 :(得分:1)

抑制stylecop警告的另一种方法是更好地使用它们。有一条规则会坚持不使用区域(默认情况下禁用)。如果不这样做,你的问题就会消失。

不使用区域,而是使用分部类。将您的区域提取到新的分部类中。

通过这种方式,您可以获得stylecop合规性和代码功能分离。两全其美。

答案 2 :(得分:1)

在您的情况下,正确的SuppressMessage属性应如下所示:

[SuppressMessage("StyleCop.CSharp.OrderingRules", "SA1202:ElementsMustBeOrderedByAccess")]
private void SomeMethod()
{
}

请注意,您可以将它放在任何其他元素上(例如,在类上 - 然后将强制执行整个类中的所有类似违规)。

我也同意在这些领域写什么是非常明显的。

实际上,第一个应该是 StyleCop分析器类的完全限定名称,可以从源代码中找到(例如来自here)。 第二个应该以规则代码开头,然后是冒号和规则枚举的名称(幸运的是,它总是看起来像设置编辑器中显示的规则名称,但是没有空格。)