【发布时间】:2012-03-23 22:26:24
【问题描述】:
我在 Caliburn-Micro Silverlight 应用程序中使用 Castle-Windsor 作为我的容器。我的 ViewModel 对象相当厚实,因为它们调用 WCF 服务和一堆其他东西。因此,当窗口关闭时,我想调用 container.Release(viewModel) 以便 Castle 可以管理整个退役/处置过程,尊重配置的各种生命周期(如 this post 中所述)。
在我的 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 对象的最简单方法是什么?
【问题讨论】:
标签: c# castle-windsor caliburn.micro silverlight-5.0