C# 查找未处理的IDispobles

C# 查找未处理的IDispobles,c#,static-analysis,idisposable,ndepend,C#,Static Analysis,Idisposable,Ndepend,我在一个庞大的代码库中寻找内存泄漏,因此逐行观察IDisposable使用的每个可能位置,而不将其放入using语句或不进行处理是不可取的 我目前正在使用NDepend来查询这个答案 但这不是我需要的。我需要知道一个对象是否被实例化,以后是否没有被处理。如何在NDepend中编写查询来查找这些对象?或者,如果这是不可能的,那么如何获得IDisposable对象正在实例化的位置列表?请查看以下内容: “要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于堆栈溢出来说都是离题的,因为

我在一个庞大的代码库中寻找内存泄漏,因此逐行观察IDisposable使用的每个可能位置,而不将其放入
using
语句或不进行处理是不可取的

我目前正在使用NDepend来查询这个答案 但这不是我需要的。我需要知道一个对象是否被实例化,以后是否没有被处理。如何在NDepend中编写查询来查找这些对象?或者,如果这是不可能的,那么如何获得IDisposable对象正在实例化的位置列表?

请查看以下内容:

“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于堆栈溢出来说都是离题的,因为它们往往会吸引固执己见的答案和垃圾邮件。”我建议改用一些内存分析器(Dynatrace、ANTS内存分析器等)。它比静态代码分析更有效地调试此类问题,不幸的是,更好的分析器不是免费的specific@OndrejSvejdar我使用了RedGate和JetBrains分析器,发现了一些问题。我现在需要的是确保代码通过一些质量要求。顺便说一下:未处理的
IDisposable
不是内存泄漏。它只是推迟了资源的最后确定。这本身就已经够糟糕的了,但真正的内存泄漏是指对象被创建并被错误地引用(不管是一次性的还是非一次性的)。与跟踪
IDisposable
s相比,使用静态检查器检测类似的内容可能更不可行。