IDisposable, Finalizers und die Definition einer nicht verwalteten Ressource

Ich versuche sicherzustellen, dass mein Verständnis vonIDisposable ist richtig und da bin ich mir noch nicht ganz sicher.

IDisposable scheint zwei Zwecke zu erfüllen.

Bereitstellung einer Konvention zum "Herunterfahren" eines verwalteten Objekts bei Bedarf.Bereitstellung einer Konvention zum Freigeben von "nicht verwalteten Ressourcen", die von einem verwalteten Objekt gehalten werden.

Meine Verwirrung rührt daher, dass ich herausgefunden habe, in welchen Szenarien "nicht verwaltete Ressourcen" im Spiel sind.

Angenommen, Sie verwenden ein von Microsoft bereitgestelltes ProduktIDisposableImplementierende (verwaltete) Klasse (z. B. datenbank- oder socketbezogen).

Woher wissen Sie, ob es implementiert wird?IDisposable Für nur1 oder1 & 2 über?Sind Sie dafür verantwortlich, dass nicht verwaltete Ressourcen, die möglicherweise intern gespeichert sind oder nicht, freigegeben werden? Sollten Sie Ihrer eigenen Klasse einen Finalizer hinzufügen (wäre das der richtige Mechanismus?), Der instanceOfMsSuppliedClass.Dispose () aufruft?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage