代码分析 CA2000 warning without warrant

Code analysis CA2000 warning without warrant

我有以下扩展方法

    public static string NameInCSharp(this Type type)
    {
        string typeName = type.FullName.Replace(type.Namespace + ".", "");

        using (var provider = System.CodeDom.Compiler.CodeDomProvider.CreateProvider("CSharp"))
        {
            var reference = new System.CodeDom.CodeTypeReference(typeName);

            return provider.GetTypeOutput(reference);
        }
    }

有谁知道为什么我在编译时收到代码分析警告 CA2000 (Dispose objects before losing scope)?

using 语句应该为我处理,对吗?

你是对的,using语句应该正确处理。我和你一样对这个警告感到困惑,这就是为什么我在我的机器上构建你的代码,启用所有代码分析规则并且没有得到你提到的警告。也许警告适用于您代码的另一部分,或者您正在使用的工具中某处存在错误。