VB.NETまたはC#または他の.NET開発者の場合は気にしません。どの言語であっても答えは高く評価されます。本当にアイデアを探してい...アプリケーションのDispose()メソッドを使用せずにアプリケーションが閉じられた/破棄されたときにFACTORYクラスのメソッドを呼び出す
私は次のようなファクトリクラスを持っている:
Public Class MyFactory
Public Shared theStuffICreated as List(Of Stuff)
Public Shared/Static Sub Create(...)
...
End Sub
Public Shared/Static Sub ThingsToDoWhenClassIsDestroyed()
...
End Sub
End Class
どのように私は、このクラスは、ファイナライザで「破壊」されたときにThingsToDoWhenClassIsDestroyed()が呼び出されることを確認することができます。私はすべてが共有/静的なので実際には作成されていないが、破壊される必要がある場所の足跡はないと理解していますか?このクラスを複数のGUIアプリケーションおよびコンソールアプリケーションで使用できると仮定し、各GUIのDisposeメソッドでMyFactory.ThingsToDoWhenClassIsDestroyed()を呼び出すことは現実的ではありません。何か案は?
あなたは 'Stuff'をクリーンアップする方法を尋ねていますか? 'MyFactory'が共有クラスである場合、インスタンスは存在しないため、オブジェクトの存続期間は存在しない可能性があるからです。 –
私はあなたの質問を本当に理解しているかどうかはわかりませんが、多分AppDomainクラスのDomainUnloadイベントを使うことができます。 – schglurps
@schglurps:これは良いアイデアでした。それがうまくいくならば完璧な解決策でしたが、うまくいかなかったでしょう。このメソッドは決してトリガーしません。 AppDomain.DomainUnloadに類似したものは何ですか? – Denis