Я разработал то, что по существу PropertyChanged слушателя - то есть, когда Instance.A изменения, вызовите OnAChanged()Обработка ошибок с помощью Реактивная Framework
Observable.FromEventPattern<PropertyChangedEventArgs>(Instance,"PropertyChanged")
.Where(e => e.EventArgs.PropertyName == "A")
.ObserveOn(Scheduler.ThreadPool)
.Subscribe(search =>
OnAChanged((PropertyChangedEventArgsEx)search.EventArgs), s =>
OnError(s));
Это работает совершенно нормально (без s => OnError(s)
части).
Однако я хотел протестировать обработку исключений. Я изменил метод OnAChanged()
, чтобы просто выбросить новое исключение. Однако исключение выбрасывается, и OnError
никогда не вызывается, и мое приложение выходит из строя. Я не понимаю использование OnError
?
Большое спасибо за помощь. Исправляюсь ли я в том, что у меня есть куча FromEventPatterns, каждый из которых слушает другое изменение свойства? Или есть лучшая практика, к которой я могу присоединиться? Я просто пытаюсь реализовать шаблон наблюдателя. – user981225
Вы можете сделать это, конечно - ReactiveUI делает это намного проще, но это MVVM-структура, явно предназначенная для работы вместе с Rx –