编译器警告CS1591:如何仅针对未记录的方法显示该警告?

时间:2014-09-15 10:42:20

标签: c# compiler-warnings

如果公共成员未记录,C#编译器会显示警告(CS1591):

  

警告...缺少公开可见类型或成员的XML评论......

包括所有属性,方法,类,枚举值等。

问题:有没有办法配置这种类型的警告只标记未记录的方法?我使用Visual Studio 2010 Ultimate和ReSharper 8.2。

示例:

public class MyClass // warning
{
    public MyClass(int x) { ... } // warning

    public void DoSomething() { ... } // warning

    public int MyProp { get; private set; } // prevent this warning
}

public enum MyEnum // warning
{
    X = 0, // prevent this warning
    Y = 1 // prevent this warning
}

4 个答案:

答案 0 :(得分:22)

如果您愿意,可以为整个程序集禁用它。

  

项目属性>构建标签>抑制警告:1591

来源:https://stackoverflow.com/a/13414522

答案 1 :(得分:8)

不,没有办法。如果指定了/doc选项,则会生成警告。此选项没有任何参数来仅记录方法。因此,检查添加到文档的任何条目。

但是,您可以使用pragma warning停用警告,但即使您对字段和属性进行分组,IMO也不是很方便。

答案 2 :(得分:2)

在当前的Visual Studio版本中,您可以在类型或成员上使用SuppressMessageAttribute

[System.Diagnostics.CodeAnalysis.SuppressMessage("Compiler", "CS1591:Missing XML comment for publicly visible type or member", Justification = "<Pending>")]

有关该属性的更多详细信息,请参见:https://docs.microsoft.com/en-us/visualstudio/code-quality/in-source-suppression-overview?view=vs-2019

答案 3 :(得分:0)

在 *.csproj 文件中添加 [NoWarn] 以禁用它。

  <PropertyGroup>
    <NoWarn>$(NoWarn);1591</NoWarn>
    <RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
    <EnableNETAnalyzers>true</EnableNETAnalyzers>
    <AnalysisMode>AllEnabledByDefault</AnalysisMode>
    <AnalysisLevel>latest</AnalysisLevel>
  </PropertyGroup>