Caliburn - 异常处理和救援

时间:2010-07-29 20:49:24

标签: wpf mvvm caliburn

我正在使用C#和Caliburn。

是否有全局方法可以捕获所有视图模型中的所有异常?

从DI / IoC容器导入过程中出现某种异常时该怎么办?

发生这种情况时,我基本上想要显示一个消息框。

RescueAttribute看起来像是必须放在每个单独的视图模型类上,并且当你同时使用AsyncActionAttribute时它似乎不起作用。

2 个答案:

答案 0 :(得分:2)

方法IConventionManager.ApplyActionCreationConventions(IAction action, IMethod targetMethod)在创建操作后立即调用,并可以向其添加过滤器。

您可以提供自定义IConventionManager覆盖DefaultConventionManager.ApplyActionCreationConventions并将操作推送到救援过滤器。

请注意,在这种情况下,您必须在每个ViewModel上提供一个救援方法;为了解决这个问题,您可以构建一个新的自定义救援过滤器(遵循原始过滤器的行)并将异常分派给您的基础架构。

答案 1 :(得分:0)

有一种非常简单的方法可以实现这一点,只需覆盖Bootstrapper中的UnhandledException方法。

这里有一个例子:Global handling exception in WPF app with Caliburn.Micro

相关问题