Kann Visual Studio mich warnen, wenn ich vergessen, ein IDisposable Objekt zu entsorgen?
-
23-08-2019 - |
Frage
Kann Visual Studio 2008 konfiguriert werden, mir eine Warnung zu geben, wenn ich vergessen, ein Objekt zu entsorgen, die IDisposable implementiert?
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