C#学习教程:在CaliburnMicro和CastleWindsor中处理ViewModels我的ViewModel对象相当粗糙,因为它们调用WCF服务和其他一些东西。因此,当窗口关闭时,我想调用container.Release(viewModel)以便Castle可以管理整个停用/处置过程,尊重配置的各种生命周期(如本文所述)。在我的AppBootstrapper中,我重写了GetInstance,如下所示:返回container.Resolve(key,serviceType);但我正在努力想出一种干净/优雅的方式来调用container.Release(viewModel)。似乎没有任何钩子可用于此。在CaliburnMicro应用程序中释放从ViewModelLocator返回的ViewModel对象的最简单方法是什么?您希望每种VM类型的生命周期都会产生影响,因此您提供的上下文并不能真正为您提供正确的答案。CM的Screen基类为您提供protectedvirtualvoidOnDeactivate(boolclose);这是一个很好的起点。对于您的重量级VM,您应该覆盖此方法以释放任何资源(WCF通道等)对它的任何引用,以便GC可以清除它。我没有使用Castle,所以我无法帮助您配置生命周期等。但是如果您遵循上述内容,您就不会遇到任何重量级的问题。我假设使用正确的生命周期配置,Castle将清除所有您不会再次使用的旧实例,而无需显式调用Release。以上就是C#学习教程:处理CaliburnMicro和CastleWindsor中ViewModels共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
