CA1034 未显示,即使 <AnalysisMode>AllEnabledByDefault</AnalysisMode>

CA1034 is not being shown, even with <AnalysisMode>AllEnabledByDefault</AnalysisMode>

我创建了 Microsoft 作为示例给出的 class:

internal class ParentType
{
    public class NestedType
    {
        public NestedType()
        {
        }
    }

    public ParentType()
    {
        NestedType nt = new();
    }
}

但似乎没有生成警告。我正在使用 Visual Studio 2019。正在测试此代码的框架是 .NET 5

警告 CA1034 仅在外部可见的嵌套类型上报告,这些嵌套类型在另一个外部可见类型中声明。 由于您的封闭类型是 internal,您的嵌套类型也无法从此程序集外部访问,因此没有违反规则。

当您创建封闭类型 public 时,您也会看到正在报告的诊断信息:

public class ParentType
{
    public class NestedType // Warning CA1034
    {
    }
}

所以我相信你在官方文档的例子中发现了一个错误。

更新:官方文档现在更新了固定的示例代码。