我有以下扩展方法
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的代码分析(在失去作用域之前释放对象)吗?
using语句应该为我做处理,对吗?
发布于 2015-07-07 15:43:33
您是正确的,using语句应该做正确的处理。我和您一样对这个警告感到困惑,这就是为什么我在我的机器上构建了您的代码,启用了所有的代码分析规则,并且没有得到您提到的警告。该警告可能适用于代码的另一部分,或者您正在使用的工具中有一个bug。
https://stackoverflow.com/questions/31272807
复制相似问题