我们在C#项目中使用StyleCop。在某些情况下,我们想要避免这些规则。我知道您可以在文件的开头添加// <auto-generated />
以使StyleCop忽略它。但是,我不想忽略整个文件的规则 - 只有一个代码块。
我可以以某种方式禁用特定行的StyleCop吗?
答案 0 :(得分:36)
您可以通过向代码块添加属性来禁止规则。以下是关于下面链接的博客文章中的一个类的简单示例,但您可以单独对各个成员执行此操作:
[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented")]
public class MyUndocumentedClass
{
public void MyUndocumentedMethod {}
}
MSDN博客帖子中有quick overview,MSDN上有fuller description of the attributes。
答案 1 :(得分:12)
我知道一个老问题,但在寻找答案时,我发现在stylecop 4.4中你现在可以把这样的东西 - 或其中一条线放在一个方法上:
[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.SpacingRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.MaintainabilityRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.LayoutRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.NamingRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.ReadabilityRules", "*", Justification = "Risky to change manually")]
[SuppressMessage("Microsoft.StyleCop.CSharp.OrderingRules", "*", Justification = "Risky to change manually")]
答案 2 :(得分:7)
这guy似乎有一个很好的普遍忽视黑客;他建议把它放在文件的顶部 - 测试并使用R#
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// </auto-generated>
//------------------------------------------------------------------------------
当你只是制作一大堆样板来坚持主要未实现的界面时,很方便。
答案 3 :(得分:0)
您可以将这段代码放在区域名称Generated Code之间,并且它将被省略。
答案 4 :(得分:0)
使用以下StyleCop属性装饰您的类或方法:
[GeneratedCode("Tool Goes Here", "Message Goes Here")]