如何抑制StyleCop警告SA1649

时间:2014-04-11 18:03:38

标签: c# stylecop

我试图在StyleCop中抑制两次出现SA1649错误。

根据documentation,抑制属性看起来像

下面的属性
[SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1649:FileHeaderFileNameDocumentationMustMatchTypeName", Justification = "Reviewed.")]

但是,我无法弄清楚应该将属性应用于哪个元素。如果我将该属性放在文件的第一个元素(IClassFactory接口)上,我会收到以下错误:

  

SA1649:CSharp.Documentation:文件中的文件属性   header的copyright tag必须包含the中第一个类型的名称   文件,可以是以下任何一个:   “IClassFactory”C :( ...)COMHelper.cs

可以抑制该错误吗?应该应用什么元素?

4 个答案:

答案 0 :(得分:10)

使用命名空间级别抑制:

[module: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1649:FileHeaderFileNameDocumentationMustMatchTypeName", Justification = "Reviewed.")]

namespace MyNamespace
{

}

答案 1 :(得分:0)

suppress属性应放在类或接口声明中。这应该在您不希望应用此规则的每个cs文件中完成。

但是,如果要对项目中的所有cs文件禁止此操作,则应考虑在设置中同时禁用此规则。这样,您就不会在每个类文件上都有一个抑制规则声明。

答案 2 :(得分:0)

Chris的答案有效,但要添加它,您可能还必须禁止文件标题规则。

[module: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1649:FileHeaderFileNameDocumentationMustMatchTypeName", Justification = "Reviewed.")]
[module: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1633:FileMustHaveHeader", Justification = "Reviewed.")]

//----------------------------------------------------------------------------------------------------
// <copyright file="FileName.cs" company="Company">
//     Copyright (c) Company. All rights reserved.
// </copyright>
// <author>n00bz</author>
//----------------------------------------------------------------------------------------------------
namespace TestNamespace
{
}

答案 3 :(得分:0)

更好的是:

//----------------------------------------------------------------------------------------------------
// <copyright file="FileName.cs" company="Company">
//     Copyright (c) Company. All rights reserved.
// </copyright>
// <author>n00bz</author>
//----------------------------------------------------------------------------------------------------
[module: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1649:FileHeaderFileNameDocumentationMustMatchTypeName", Justification = "Reviewed.")]

namespace TestNamespace
{
}