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

3

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

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

这是在MSBuild自定义任务库中使用的代码,所涉及到的属性是Microsoft.Build.Framework.RequiredAttribute,如果有任何意义的话。
我正在使用StyleCop 4.7.14.0,没有修改默认规则。在StackOverflow、Google和该项目的开放问题日志和文档中快速搜索并没有提到这个问题,我是否做错了什么还是这是一个错误?
谢谢。

4
风格警察规则是否区分大小写?您使用的是“Gets或Sets”,但规则要求使用“Gets或sets”。 - Erv Walter
1
它们确实是,我简直不敢相信我错过了那个。你想回答这个问题吗,这样我就可以接受它作为答案了吗? - aolszowka
你可以发布自己的答案并标记它。感谢Erv,一切都会好起来的。 - Hans Passant
2个回答

9

我曾经遇到过这种类型的错误,但是很难理解它们真正的含义:

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

我一直在遇到这个问题,但是在检查我的代码后发现没什么问题,我已经按照规则以“获取或设置…”开始了我的摘要文本,但仍然出现了错误。

几乎要崩溃的时候,我意识到这是针对两个 布尔型属性 的错误提示,它们实际上是告诉我针对布尔型属性,我应该使用完整的句子,以"获取或设置一个指示是否..." 开始描述我的属性的作用。

例如:

/// <summary> /// 
/// Gets or sets a value indicating whether the product is active. 
/// </summary> 
public boolean Active { get; set; }
我希望这篇内容能够节省他人的时间。

我刚刚遇到了这个确切的问题,这个答案真是拯救了我。谢谢! - PixelPaul
这对我有用。我的布尔值已经有了“获取或设置...”,但当改为“获取或设置一个指示是否...的值”时,它通过了。我讨厌SC。 - I think I can code
遇到了相同的问题,也将whether拼写错误,但错误并没有消失。 - chaimite

3
根据Erv Walter的评论,StyleCop规则区分大小写,必须完全按照以下格式:
/// <summary>
/// Gets or sets the location to check for files.
/// </summary>

请注意集合名称是小写。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接