我正在申请并开发几个类用于演示目的。我知道将来会删除这些课程。
是否可以忽略这些类的所有stylecop警告,因为我不想花时间处理这些警告?
我搜索但发现我只能忽略通过stylecop中的设置(这也会影响其他类)或某些特定规则(我只想忽略所有警告)。
答案 0 :(得分:21)
您可以通过在顶部添加此标题来诱骗StyleCop完全不处理文件:
//------------------------------------------------------------------------------
// <auto-generated>
// Well, not really. This is just a trick to get StyleCop off my back.
// </auto-generated>
//------------------------------------------------------------------------------
答案 1 :(得分:15)
从StyleCop 4.4.0开始,还可以使用单个抑制属性来抑制规则命名空间中的所有规则。通过用单个星号替换规则CheckID和规则名称来指示这一点。以下代码示例禁止内部类中的所有StyleCop的默认文档规则。在这种情况下,StyleCop仍会标记违规,表明外部类缺少文档,但它会忽略内部类及其内容的所有文档规则。
public class OuterClass
{
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "*")]
public class InnerClass
{
public void MyUndocumentedMethod
{
}
}
}
答案 2 :(得分:13)
感谢BartłomiejMucha我刚刚使用的答案。正如我发现的那样,“*”适用于特定规则,但您必须为每个类别添加抑制。这是完整的集合 - 如果你将它们复制到类的顶部,你会发现所有的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
{
// ...
}
答案 3 :(得分:1)
如果您想阻止StyleCop在文件上运行,可以使用http://stylecop.codeplex.com/wikipage?title=Using%20StyleCop%20on%20Legacy%20Projects&referringTitle=Documentation中提到的ExcludeFromStyleCop属性将其标记在.csproj文件中。
答案 4 :(得分:0)
您可以通过向代码块添加属性来禁止规则。以下是关于下面链接的博客文章中的一个类的简单示例,但您可以单独对各个成员执行此操作:
[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented")]
public class MyUndocumentedClass
{
public void MyUndocumentedMethod {}
}