可以ReSharper的设置警告如果IDisposable的处理不正确?可以ReSharper的设置

2019-05-11 21:29发布

是否有ReSharper的4强制警告,如果我忘了在包装代码的设置(甚至Visual Studio中本身...) using块,或在ommit适当的处置呼叫finally阻止?

Answer 1:

正确处置自动分析,需要DFA(数据流分析)在全球的方式。 您创建一个IDisposable的对象,不调用它的任何方法和不通过它周围作为一个参数是不可能的。 如果一次性对象传递给其他方法(包括调用它的成员,当“这个”隐式传递),该工具应该分析,如果处置不中调用,或者该对象不是为后续处理保存在某个地方。

这就是说,天真的执行检查,如果一次性的对象实际上是在设置有“使用”建造或以其他任何方式将产生太多的误报,并呈现分析无用的。



Answer 2:

不满目前的方法,我创建了自己: EyeDisposable 。 这是一个IL instrumenter所以应该抓住很多泄漏不是静态分析捕获。 它仍处于初期阶段,inpuits欢迎。



Answer 3:

你可以设计一个小的加载项,你可以有一个扫描代码和更新代码分析,以反映你的对象是谁丢失你刚才所描述的结构的代码编辑器内运行R·。

我想看看转换为R#插件架构,如果你决定走这条路。



Answer 4:

请参见这篇博客的一些技巧用于测试Dispose()DEBUG 。 基本上,写一个只有DEBUG-析构函数断言你布置。



Answer 5:

你可能想看看的FxCop此: http://msdn.microsoft.com/en-us/library/ms182328(VS.80).aspx

它是一种可惜R·不处理它,哪怕只是在你的类和/或您创建变量的字段警告。



文章来源: Can Resharper be set to warn if IDisposable not handled correctly?