代码之家  ›  专栏  ›  技术社区  ›  stiank81

禁用特定行的样式图

  •  36
  • stiank81  · 技术社区  · 15 年前

    我们在C项目中使用了样式警察。不过,在某些情况下,我们希望避免遵守这些规则。我知道你可以补充 // <auto-generated /> 在文件的开头,使stylecop忽略它。但是,我不想忽略整个文件的规则——只考虑其中的一块代码。

    我可以为特定的行禁用样式警察吗?

    5 回复  |  直到 8 年前
        1
  •  36
  •   FinnNk    15 年前

    可以通过向代码块添加属性来抑制规则。下面是一个简单的例子,来自下面链接的博客文章中的一个类,但是您可以在不同的成员上分别这样做:

    [SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented")]
    public class MyUndocumentedClass
    {
        public void MyUndocumentedMethod {}
    } 
    

    有一个 quick overview 在一个msdn博客帖子和 fuller description of the attributes 在msdn上。

        2
  •  12
  •   Dzmitry Lahoda Adam    8 年前

    我知道一个古老的问题,但在寻找答案时,我发现在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")]
    
    • 注意:我可能缺少一个或两个规则类别
        3
  •  7
  •   satnhak    11 年前

    这个 guy 似乎有一个很好的通用忽略黑客;他建议把这个放在测试文件的顶部,并与R一起工作。#

    //------------------------------------------------------------------------------
    // <auto-generated>
    // This code was generated by a tool.
    // </auto-generated>
    //------------------------------------------------------------------------------
    

    例如,当您只是大量生产样板文件以粘附到一个主要未实现的接口时,使用起来很方便。

        4
  •  0
  •   sGambolati    8 年前

    您可以将这段代码放在一个区域名生成的代码之间,它将被命令。

        5
  •  0
  •   jezzipin    8 年前

    用以下StyleCop属性修饰类或方法:

    [GeneratedCode("Tool Goes Here", "Message Goes Here")]