Frage

Was ist die beste Praxis IDisposable für die Implementierung auf einem Winform?

  • Ich habe einen Dialog, der System.Windows.Forms.Form
  • erweitert
  • Die generierten designer.cs enthält bereits eine Implementierung der virtuellen Dispose (bool) Methode
  • Meine Form hat ein Feld manuell hinzugefügt, die IDisposable implementiert

Idealerweise würde ich in der Lage sein, in die Dispos (bool) Überschreibung in dem generierten Code einzuhaken das manuell hinzugefügt IDisposable Objekt zu entsorgen. Alle Empfehlungen, wie man dies richtig zu tun?

Danke.

Scott

War es hilfreich?

Lösung

Sie können das Entsorgen Implementierung bewegen aus der designer.cs und in Ihrem CS-.

Andere Tipps

Aber dann muss Ihr Feld eine Komponente (implementieren die IComponent Schnittstelle oder etwas ähnliches) sein. Wäre das nicht ein wenig zu viel des Guten?

Vielleicht können Sie einen Eventhandler an die Entsorgung Ereignis zuordnen, und entsorgen Sie Ihre Felder in diesem Eventhandler?

(Oder einfach fügen Sie sie die Dispose-Methode - ich glaube nicht, dass es ein Problem sein, da afaik, wird der Code in der Dispose-Methode nicht regeneriert ... Idealerweise sollte die Dispose-Methode Umsetzung in der * designer.cs Klasse wurde nicht ...).

I deregistrieren alle Ereignisse in der Methode Dispose in Form des designer.cs gefunden

    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        _frmFind.RaiseFindEvent -= _frmFind_RaiseFindEvent;
        base.Dispose(disposing);
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top