破棄する必要がある内部データ構造を持つユーザー コントロールの場合、そのコードを .designer.cs ファイルの Dispose メソッドに追加する正しい場所はありますか?それとも、代わりに使用する予定のイベントまたは何かがありますか?
編集: これは winforms ユーザー コントロールです。
破棄する必要がある内部データ構造を持つユーザー コントロールの場合、そのコードを .designer.cs ファイルの Dispose メソッドに追加する正しい場所はありますか?それとも、代わりに使用する予定のイベントまたは何かがありますか?
編集: これは winforms ユーザー コントロールです。
WinForms について話している場合、私は通常、この問題を解決するために 2 つのアプローチのいずれかを取ります。
アプローチ1
Form.Designer.cs ファイルを開きます。生成された dispose メソッド内に、DisposeCore への呼び出しを追加します。次に Form.cs に戻り、Dispose 中に呼び出される DisposeCore メソッドを追加します。すべての破棄ロジックをこのメソッドに追加します。
デザイナー ファイルの編集は技術的にサポートされていません。ただし、デザイナーがコードを再生成しても、この特定の編集は洗い流されないことがわかりました。
アプローチ 2
Form.Disposed にイベント ハンドラーを追加し、ハンドラーで破棄ロジックを実行します。これは、サポートされている操作であり、まだ遭遇していないデザイナーの世代の影響を受けないため、好ましい方法です。
または、メインの .cs ファイルにカット アンド ペーストすることもできます。そのコードは「#region コンポーネント デザイナーによって生成されたコード」内にないため、Studio はそれを見逃すことはありません。
どのような種類のコントロールを明確にできますか? ASP.NET、WinForms?
ASP.NET では、次のことができます。
protected override void OnUnload(EventArgs e){
base.OnUnload(e);
//Unload here...
}