PRISM MEF を使用して、地域内のさまざまなゲームを選択できるゲーム マネージャーを作成します。「MainRegion」には静的シェルと動的コンテンツがあります。各ゲームは個別のモジュール (アセンブリ) であり、インスタンスを取得すると、ゲームごとに約 20 ~ 30 MB が割り当てられます。
各ゲームに次のようなコンポーネントがあります。
- MainView [CreationPolicy.Shared]
- View1 [CreationPolicy.Shared]
- ViewN [CreationPolicy.Shared]
- MainViewModel [CreationPolicy.Shared]
- ViewModel1 [CreationPolicy.Shared]
- ViewModelN [CreationPolicy.Shared]
呼び出しによって作成された各「ビュー」(メイン、1st、2nd...)
_serviceLocator.GetInstance<MainView>();
各「ビュー」には次のプロパティがあります
[Import(AllowRecomposition = false)]
public MainViewModel ViewModel //example for MainView
{
get { return this.DataContext as MainViewModel; }
set { this.DataContext = value; }
}
ゲームを変更したい場合は から削除MainView
しますが、が に設定されてMainRegion
いるため新しいインスタンスは作成されませんが、使用するとインスタンスが削除された後にメモリ リークが発生します。PartCreationPolicy
Shared
NonShared
アプリケーションでこのメモリ リークを修正するにはどうすればよいですか?