Prism と MEF を使用する Silverlight 5 アプリケーションで NonShared オブジェクトのメモリ リークに問題があるため、ExportFactory< T > を使用して ViewModels を作成しようとしました。ただし、ExportLifetimeContext で Dispose を呼び出しても、オブジェクトはメモリから削除されません。次のコードは DataEntryViewModel のインスタンスを作成しますが、2 行後に ExportLifetimeContext を破棄する呼び出しは効果がありません。助言がありますか?
[Export("DataEntry", typeof(UserControl)), PartCreationPolicy(CreationPolicy.NonShared)]
public partial class DataEntry
{
private readonly ExportFactory<DataEntryViewModel> _ExportFactory;
[ImportingConstructor]
public DataEntry(ExportFactory<DataEntryViewModel> exportFactory)
{
_ExportFactory = exportFactory;
var context = _ExportFactory.CreateExport();
DataContext = context.Value;
context.Dispose();
InitializeComponent();
}
}