Gibt es ein Tool, mit dem Sie Ihren Code scannen und feststellen können, welche Objekte, die IDisposable implementieren, zur Kompilierungszeit oder zur Laufzeit nicht in einer Codebasis bereitgestellt werden?
Ich habe mögliche Bereiche im Code, die keine Objekte anordnen, aber es ist schwierig, zurückzuschauen und zu sehen, welche Objekte das überhaupt benötigen.
Es gibt viele statische Analysewerkzeuge, die hier helfen können.
Sowohl CodeRush / Refactor Pro als auch Resharper werden Ihnen zur Codezeit in Visual Studio nicht disponierte Objekte anzeigen.
Und FxCop, das jetzt als Teil der Visual Studio-Codeanalyse gepackt ist, kann Warnungen zur Kompilierungszeit für nicht veröffentlichte Einheimische und Klassenmitglieder generieren.
Der ANTS Speicherprofiler von red-gate hilft dabei zur Laufzeit. Es ist eines meiner Lieblingswerkzeuge.
Der Destruktor einer Klasse wird aufgerufen, wenn der Garbage Collector endgültig nicht mehr verwendete Klassen bereinigt. Sie können den Destruktor überprüfen, dass "Dispose" aufgerufen wurde. Es wird davon abgeraten, den Destruktor tatsächlich zu verwenden, aber zu Testzwecken kann es nützlich sein.
Das einzige Problem bei dieser Methode besteht darin, dass Sie eine eigene Klasse erstellen müssen, die von der IDISPOSE-Klasse abgeleitet ist und die Dispose-Methode überschreibt (so können Sie eine Markierung setzen, die besagt, dass sie aufgerufen wurde). initialisiere das Flag in einem Konstruktor und prüfe es im Destruktor (den du mit "~ ClassName () {...}" implementierst)
Tags und Links .net idisposable