Frage

Kann Visual Studio 2008 konfiguriert werden, mir eine Warnung zu geben, wenn ich vergessen, ein Objekt zu entsorgen, die IDisposable implementiert?

War es hilfreich?

Lösung

Visual Studio, um sich diese Funktion nicht hat, aber mit CodeRush können Designzeitwarnungen und Refactorings müssen Blöcke einfügen verwenden, wo nötig.

Andere Tipps

Wenn Sie auf FxCop drehen Design-Regeln es wird Ihnen sagen, wenn Sie IDisposable nicht implementieren und Sie haben Mitglieder, die IDisposable implementieren, wie folgt aus:

class Program
{
    private DataTable NotDisposed;

    public Program()
    {
        NotDisposed = new DataTable();
    }
    static void Main()
    {
    }
}

Ich glaube nicht, es bei der Kompilierung durchgeführt werden kann.

kann es jedoch zur Laufzeit erfolgen.
Ich habe eine abstrakte Klasse ‚Einweg‘ erstellt wurde (die IDisposable implementiert und implementiert das Einweg-Muster). Im Finalizerthread, gebe ich eine Assert, wenn der Finalizer aufgerufen wird, und das Objekt angeordnet wird nicht.

Ich habe dies basiert auf einem Artikel von Ian Griffiths:

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

Ich bin mir nicht sicher, ob Sie C # oder VB verwenden, aber in C #, die „best practice“ Art und Weise Objekte vom Typ zu behandeln IDisposable ist, den Code in einem mit Block zu setzen.

„Die using-Anweisung ermöglicht es den Programmierer angeben, wenn Objekte, die Ressourcen verwenden, sollten sie freigeben. Das Objekt die using-Anweisung muss mit der IDisposable-Schnittstelle implementieren. Diese Schnittstelle stellt die Dispose-Methode, die die Ressourcen des Objekts freigeben sollte.“ - MSDN Link-

HTH,

-Dan

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top