我正在开发一个应用程序,并为演示目的编写了一些类。 我知道这些类将来会被删除。
是否有可能忽略那些类的所有StyleCop警告,因为我不想在这些警告上浪费时间?
我搜索过,但发现只能通过StyleCop设置来忽略某些特定规则的警告(这也会影响到其他类),而无法忽略所有警告。
如果在文件顶部添加此标题,您可以欺骗StyleCop完全不处理该文件:
//------------------------------------------------------------------------------
// <auto-generated>
// Well, not really. This is just a trick to get StyleCop off my back.
// </auto-generated>
//------------------------------------------------------------------------------
从StyleCop 4.4.0开始,还可以使用单个抑制属性来抑制规则命名空间中的所有规则。这是通过将CheckID和规则名称替换为单个星号来指示的。以下代码示例抑制了内部类中所有StyleCop默认的文档规则。在此情况下,StyleCop仍然会标记违规行为,表示外部类缺少文档,但它将忽略内部类及其内容的所有文档规则。
public class OuterClass
{
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "*")]
public class InnerClass
{
public void MyUndocumentedMethod
{
}
}
}
感谢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
{
// ...
}
您可以通过将属性添加到代码块来禁用规则。下面是一个简单的示例,使用链接下方的博客文章中的类,但您也可以对各个成员进行操作:
[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented")]
public class MyUndocumentedClass
{
public void MyUndocumentedMethod {}
}