8

我正在一个应用程序中工作,并为演示目的开发了几个类。我知道这些课程将来会被删除。

是否可以忽略这些类的所有 stylecop 警告,因为我不想花时间在这些警告上?

我搜索但发现我只能通过 stylecop 中的设置忽略(这也会影响其他类)或某些特定规则(我只想忽略所有警告)。

4

5 回答 5

23

您可以通过在顶部添加此标头来欺骗 StyleCop 根本不处理文件:

//------------------------------------------------------------------------------
// <auto-generated>
// Well, not really. This is just a trick to get StyleCop off my back.
// </auto-generated>
//------------------------------------------------------------------------------
于 2013-02-08T09:38:30.103 回答
15

从 StyleCop 4.4.0 开始,还可以使用单个抑制属性来抑制规则命名空间中的所有规则。这通过用单个星号替换规则 CheckID 和规则名称来表示。下面的代码示例在内部类中抑制了 StyleCop 的所有默认文档规则。在这种情况下,StyleCop 仍然会标记一个违规,表明外部类缺少文档,但它会忽略内部类及其内容的所有文档规则。

public class OuterClass
{
    [SuppressMessage("StyleCop.CSharp.DocumentationRules", "*")]
    public class InnerClass
    {
        public void MyUndocumentedMethod
        {
        }
    }
}

http://stylecop.soyuz5.com/Suppressions.html

于 2013-02-08T09:53:44.613 回答
13

感谢 Bartłomiej Mucha 提供我刚刚使用的答案。正如我发现的那样,“*”适用于特定规则,但您必须为每个类别添加抑制。这是完整的集合 - 如果将它们复制到类的顶部,您应该会发现所有 StyleCop 错误都被抑制:

[SuppressMessage("StyleCop.CSharp.NamingRules", "*", Justification = "Reviewed. Suppression is OK here.")]
[SuppressMessage("StyleCop.CSharp.LayoutRules", "*", Justification = "Reviewed. Suppression is OK here.")]
[SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "*", Justification = "Reviewed. Suppression is OK here.")]
[SuppressMessage("StyleCop.CSharp.OrderingRules", "*", Justification = "Reviewed. Suppression is OK here.")]
[SuppressMessage("StyleCop.CSharp.ReadabilityRules", "*", Justification = "Reviewed. Suppression is OK here.")]
[SuppressMessage("StyleCop.CSharp.SpacingRules", "*", Justification = "Reviewed. Suppression is OK here.")]
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "*", Justification = "Reviewed. Suppression is OK here.")]
internal class MyClass 
{
    // ...
}
于 2014-02-04T16:33:24.440 回答
0

您可以通过向代码块添加属性来抑制规则。这是下面链接的博客文章中的一个类的简单示例,但您可以单独对各个成员执行此操作:

[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented")]
public class MyUndocumentedClass
{
    public void MyUndocumentedMethod {}
}
于 2013-02-08T09:37:38.310 回答