检查实现IDisposable但未正确处理的对象

时间:2010-04-08 19:41:12

标签: c# .net idisposable

是否有办法自动检查现有C#源代码,以查找未正确处理的对象实例,即。使用try / catch / finally或使用语句? 或者我是否需要手动查看代码?

3 个答案:

答案 0 :(得分:3)

看看FxCop代表VS2010 - 我相信他们恢复了DisposeObjectsBeforeLeavingScope规则 - 这可能完全符合您的要求。

答案 1 :(得分:1)

HTH

答案 2 :(得分:0)

CodeRush支持发现明显的变体。另一个可能的选择是(可能通过一个可选的编译符号)为你自己的IDisposable对象添加一个终结器,并且如果它们在没有被处理的情况下最终确定就会大声抱怨(在Dispose中设置一个bool标志)。但请注意:使用终结器会更改对象的行为,因此请不要将其保留在生产代码中(甚至是常规单元测试)。