在使用 Prism 和 MEF 的 Silverlight 5 应用程序中,NonShared 对象存在内存泄漏问题,因此尝试使用 ExportFactory< T > 创建我的 ViewModels,这应该是我所读到的解决方案。但是,在 ExportLifetimeContext 上调用 Dispose 也不会从内存中删除对象。下面的代码创建了一个 DataEntryViewModel 的实例,但在两行之后调用 dispose 的 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();
}
}