Disposable Objekte als Member in Form: Wo Dispose aufrufen?
-
Okay, ich habe eine Form und in der Form befindet sich als Membervariable irgendein Objekt, das von IDisposable ableitet. Der Member soll in dem Moment dispost werden, wenn auch die Form selbst dispost wird. Unglücklicherweise befindet sich die Dispose-Funktion der Form in der Designer-Datei, die ja möglichst nicht manuell geändert werden soll. Also: Wo dispose ich mein Objekt, das ein Member der Form ist?
class MeinObjekt : IDisposable { public override void Dispose() { MessageBox.Show("MeinObjekt.Dispose()"); } } partial class MainForm : Form { MeinObjekt meinObjekt; public MainForm() { InitializeComponent(); meinObjekt = new MeinObjekt(); } }
-
Hmm mir fällt auf anhieb kein Workaround ein, hau einfach dein Dispose mit in die Dispose von dem Form und fertig.
-
Mayor West schrieb:
Unglücklicherweise befindet sich die Dispose-Funktion der Form in der Designer-Datei, die ja möglichst nicht manuell geändert werden soll.
Genau da würd ich sie aber auch reinpacken. Abgesehen davon bezieht sich das "do not modify" nur auf die InitializeComponent()-Funktion, nicht auf die ganze Datei:
/// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { [...]