8

是否有一种工具可以扫描您的代码并确定哪些实现 IDisposable 的对象在编译时或运行时没有被释放到代码库中?

我在代码中有可能没有处理对象的区域,但是很难回头看看哪些对象首先需要这样做。

4

3 回答 3

8

有很多静态分析工具,可以在这里提供帮助。

CodeRush/Refactor Pro 和 Resharper 都将在代码时在 Visual Studio 中向您显示未处理的对象。

FxCop,现在作为 Visual Studio 代码分析的一部分打包,可以为未处理的本地人和类成员生成编译时警告。

于 2009-03-08T22:58:36.193 回答
3

red-gate的ANTS 内存分析器将在运行时提供帮助。这是我最喜欢的工具之一。

于 2010-02-24T04:00:44.717 回答
-1

当垃圾收集器最终清理不再使用的类时,将调用类的析构函数。您可以做的是检查已调用“Dispose”的析构函数。建议不要实际使用析构函数,但出于测试目的,它可能很有用。

此方法的唯一问题是您必须创建自己的类,该类继承自您需要测试 IDispose 的类并覆盖 Dispose 方法(因此您可以设置一个标志,说明它已被调用),初始化标志在构造函数中并在析构函数中检查它(您使用“~ClassName(){...}”实现)

于 2009-03-08T23:11:09.940 回答