Caliburn - 异常处理和救援

3

我正在使用C#和Caliburn。

是否存在一种全局方式来捕获所有视图模型中的异常?

当从DI/IoC容器导入时发生某种异常怎么办?

基本上,我希望在发生异常时显示一个消息框。

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


同时,我已经创建了一组基类,并添加了一个虚拟的“救援”方法来处理这个问题。还有其他方法吗? - jonathanpeppers
2个回答

2

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

您可以提供自定义的IConventionManager,覆盖DefaultConventionManager.ApplyActionCreationConventions并在动作中添加一个救援过滤器。

请注意,在这种情况下,您仍然需要在每个ViewModel上提供一个救援方法;为了克服这一问题,您可以构建一个新的自定义救援过滤器(按原始过滤器的方式)并将异常分派到您的基础架构中。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接