Caliburn - обработка на изключения и спасяване

Използвам C# и Caliburn.

Има ли глобален начин за улавяне на всички изключения във всички модели на изглед?

Какво ще кажете, когато има някакво изключение по време на импортиране от DI/IoC контейнер?

По принцип искам да покажа поле за съобщение, когато това се случи.

RescueAttribute ми изглежда така, сякаш трябва да се постави във всеки отделен клас на модел на изглед и не изглежда, че работи, когато използвате AsyncActionAttribute едновременно.


person jonathanpeppers    schedule 29.07.2010    source източник
comment
Междувременно направих набор от базови класове с виртуален спасителен метод, за да се справя с това. Някакъв друг начин?   -  person jonathanpeppers    schedule 30.07.2010


Отговори (2)


Методът IConventionManager.ApplyActionCreationConventions(IAction action, IMethod targetMethod) се извиква точно след създаване на действие и може да добавя филтри към него.

Можете да предоставите персонализирано IConventionManager отменяне DefaultConventionManager.ApplyActionCreationConventions и натискане на спасителен филтър в действието.

Имайте предвид, че в този случай трябва да предоставите метод за спасяване на всеки ViewModel така или иначе; за да преодолеете това, можете да създадете нов персонализиран спасителен филтър (следвайки линията на оригиналния) и да изпратите изключението към вашата инфраструктура.

person Marco Amendola    schedule 11.08.2010

Има наистина лесен начин да постигнете това, просто заменете метода UnhandledException във вашия Bootstrapper.

Тук има пример: Изключение за глобално обработване в WPF приложение с Caliburn .Микро

person Steve    schedule 26.10.2011