13

是否可以将 Visual Studio 2008 配置为在我忘记处置实现 IDisposable 的对象时向我发出警告?

4

3 回答 3

6

Visual Studio 本身没有此功能,但使用CodeRush,您可以在需要时使用块插入设计时警告和重构。

于 2009-07-06T19:12:32.613 回答
3

如果您打开 FxCop 设计规则,它会告诉您何时不实现 IDisposable 并且您有成员实现 IDisposable,如下所示:

class Program
{
    private DataTable NotDisposed;

    public Program()
    {
        NotDisposed = new DataTable();
    }
    static void Main()
    {
    }
}
于 2009-07-06T20:46:47.073 回答
1

我认为它不能在编译时完成。

但是,它可以在运行时完成。
我创建了一个抽象类“Disposable”(它实现了 IDisposable,并实现了 Disposable 模式)。在终结器中,我在调用终结器时发出断言,并且对象尚未被释放。

我基于 Ian Griffiths 的一篇文章:

http://www.interact-sw.co.uk/iangblog/2004/04/26/yetmoretimedlocking

于 2009-07-06T19:09:16.037 回答