Resharper 4(甚至是Visual Studio本身......)中是否有一个设置,如果我忘记将代码包装在一个using
块中,或者在一个块中省略正确的Dispose调用,它会强制发出警告finally
?
正确的自动Dispose分析需要以全局方式进行DFA(数据流分析).您不可能创建一个IDisposable对象,也不会在其上调用任何方法,也不会将其作为参数传递.如果将一次性对象传递给其他方法(包括调用其成员,当隐式传递"this"时),该工具应分析是否未调用Dispose,或者该对象未存储在某处以供以后处理.
也就是说,检查一次性物体实际上是否使用"使用"构造或以任何其他方式进行检查的天真实施将产生过多的误报,并且使得分析无用.
对当前方法的不满,我创建了自己的:EyeDisposable.它是一个IL指导者,因此它应该捕获许多未被静态分析捕获的泄漏.它还处于早期阶段,欢迎使用.