2010-07-29 71 views
3

我正在使用C#和Caliburn。Caliburn - 異常處理和救援

是否有一種全局方法來捕獲所有視圖模型中的所有異常?

從DI/IoC容器導入時出現某種異常時怎麼辦?

我基本上想在發生這種情況時顯示一個消息框。

RescueAttribute在我看來就像它必須放在每個視圖模型類上一樣,而且它在您同時使用AsyncActionAttribute時看起來不像它的作用。

+0

在平均時間,我做了一個基類集與虛擬救援方法來處理這個問題。任何其他方式? – jonathanpeppers 2010-07-30 15:37:26

回答

2

方法IConventionManager.ApplyActionCreationConventions(IAction action, IMethod targetMethod)在動作創建之後被調用,並且可以向其添加過濾器。

您可以提供自定義IConventionManager覆蓋DefaultConventionManager.ApplyActionCreationConventions並推動搶救過濾器。

請注意,在這種情況下,您必須提供每個ViewModel的救援方法;爲了解決這個問題,您可以構建一個新的自定義應急過濾器(按照原始過濾器的行)並將異常分派到您的基礎架構。

+0

我會研究這個。 – jonathanpeppers 2010-08-12 22:00:29