我正在使用Castle-Windsor作为Caliburn-Micro Silverlight应用程序中的容器。我的ViewModel对象相当庞大,因为它们调用WCF服务和一堆其他内容。因此,当窗口关闭时,我想调用container.Release(viewModel),以便Castle可以管理整个退役/处置过程,并遵守配置的各种生命周期(如此文章所述)。
在我的AppBootstrapper中,我已经重写了GetInstance,代码如下:
在我的AppBootstrapper中,我已经重写了GetInstance,代码如下:
protected override object GetInstance(Type serviceType, string key)
{
if (string.IsNullOrEmpty(key)) return container.Resolve(serviceType);
return container.Resolve(key, serviceType);
}
但我无法想出一种干净/优雅的方法来调用container.Release(viewModel)
。似乎没有可用的钩子。
在Caliburn Micro应用程序中释放从ViewModelLocator返回的ViewModel对象的最简单方法是什么?