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

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

有帮助吗?

解决方案

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

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

现在,作为Visual Studio Code Analysis的一部分打包的FxCop可以为未使用的本地人和班级成员生成编译时警告。

其他提示

来自红门的 ANTS内存分析器将有助于这在运行时。这是我最喜欢的工具之一。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top