是否有办法自动检查现有C#源代码,以查找未正确处理的对象实例,即。使用try / catch / finally或使用语句? 或者我是否需要手动查看代码?
答案 0 :(得分:3)
看看FxCop代表VS2010 - 我相信他们恢复了DisposeObjectsBeforeLeavingScope规则 - 这可能完全符合您的要求。
答案 1 :(得分:1)
使用FX Cop作为规则,检查IDisposable是否放置在正确的使用区块中......
您可以使用反射器通过IDisposable
参考:Is there a list of common object that implement IDisposable for the using statement?了解更多想法
HTH
答案 2 :(得分:0)
CodeRush支持发现明显的变体。另一个可能的选择是(可能通过一个可选的编译符号)为你自己的IDisposable
对象添加一个终结器,并且如果它们在没有被处理的情况下最终确定就会大声抱怨(在Dispose
中设置一个bool标志)。但请注意:使用终结器会更改对象的行为,因此请不要将其保留在生产代码中(甚至是常规单元测试)。