可以将Resharper设置为在IDisposable未正确处理时发出警告吗?

ser*_*g10 33 .net c# resharper static-analysis

Resharper 4(甚至是Visual Studio本身......)中是否有一个设置,如果我忘记将代码包装在一个using块中,或者在一个块中省略正确的Dispose调用,它会强制发出警告finally

Ily*_*kov 29

正确的自动Dispose分析需要以全局方式进行DFA(数据流分析).您不可能创建一个IDisposable对象,也不会在其上调用任何方法,也不会将其作为参数传递.如果将一次性对象传递给其他方法(包括调用其成员,当隐式传递"this"时),该工具应分析是否未调用Dispose,或者该对象未存储在某处以供以后处理.

也就是说,检查一次性物体实际上是否使用"使用"构造或以任何其他方式进行检查的天真实施将产生过多的误报,并且使得分析无用.

  • 好吧,我喜欢它,并且让人们与StackOverflow上的产品发布相关是很棒的.干杯! (6认同)
  • 当然,它只能在变量被限定为单个方法时发出警告,而不必检查它是否被放置在其他地方. (4认同)

kiz*_*zx2 6

对当前方法的不满,我创建了自己的:EyeDisposable.它是一个IL指导者,因此它应该捕获许多未被静态分析捕获的泄漏.它还处于早期阶段,欢迎使用.