当方法具有属性时StyleCop SA1623是否错误地触发?

时间:2012-03-18 16:43:52

标签: c# stylecop

我在我的代码中触发了几个SA1623: PropertySummaryDocumentationMustMatchAccessors的实例,其中我有一个与此类似的属性:

    /// <summary>
    /// Gets or Sets the location to check for files.
    /// </summary>
    [Required]
    public string SourceDirectory { get; set; }

这是MSBuild Custom Task库中使用的代码,如果有任何意义,则有问题的属性为Microsoft.Build.Framework.RequiredAttribute

我使用StyleCop 4.7.14.0而没有修改默认规则。快速搜索StackOverflow,Google以及Project的Open Issue日志和文档都没有提到这个怪癖,我做错了什么,这是一个错误吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

我对这种类型的错误感到非常头疼,知道它们的真正含义并不直观:

  

严重级代码描述项目文件行抑制状态   错误SA1623:CSharp.Documentation:属性的文档   摘要文本必须以:获取或设置一个指示是否

的值

我得到了这个,在查看我的代码时,我写得很好,我用“获取或设置......”开始了我的摘要,但仍然不断收到错误

几乎疯了之后,我意识到这显示了2个 布尔 属性,他们告诉我的是 布尔属性我实际上应该写下整个句子,从“获取或设置一个值,表明是否......” 以及我的财产所做的任何事情开始。

例如:

/// <summary> /// 
/// Gets or sets a value indicating whether the product is active. 
/// </summary> 
public boolean Active { get; set; }

我希望这可以节省其他人的时间。

答案 1 :(得分:2)

正如Per Erv Walter上面的评论,StyleCop规则是cAsE sEnSiTive,必须完全如下所示:

/// <summary>
/// Gets or sets the location to check for files.
/// </summary>

注意集合上的小写