Verfolgung von nicht disponierten Einwegobjekten

8

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.

    
Jeremy Edwards 08.03.2009, 22:51
quelle

3 Antworten

8

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.

    
Scott Weinstein 08.03.2009, 22:58
quelle
3

Der ANTS Speicherprofiler von red-gate hilft dabei zur Laufzeit. Es ist eines meiner Lieblingswerkzeuge.

    
Eric 24.02.2010 04:00
quelle
-1

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)

    
Grant Peters 08.03.2009 23:11
quelle

Tags und Links