クリックすると WPF フォームが表示される Winforms メニュー項目があります。WPF フォームは、Autofac でブートストラップされた Caliburn Micro を使用します。
最近、Caliburn ブートストラッパーがルートの Autofac コンテナーから依存関係を解決することに気がつきました。したがって、これらの依存関係 (たとえば、グリッドにバインドされる数千のデータ項目を持つビュー モデル) は破棄されません。
Autofac ライフタイムスコープ コンテナーを使用して破棄を管理したいのですが、Caliburn でこれを行う方法がわかりません。最初は、開いている WPF フォームごとに 1 つの Caliburn ブートストラッパー (独自の Autofac ライフタイムスコープ コンテナーを使用) をインスタンス化することを考えていました。次に、フォームが破棄されると、ブートストラッパー (およびライフタイムスコープ コンテナー) を破棄できます。
ただし、Caliburn のソースを見ると、アプリケーション全体に対して 1 つのブートストラップのみを作成する必要があるようです。これは、ブートストラッパーをインスタンス化すると、静的フィールドが UI マーシャリング (およびおそらく私が見たことのない他のもの) に関係するように割り当てられるように見えるためです。
WPFフォームが閉じられたときに依存関係を破棄する方法について、誰かに推奨事項/提案はありますか?