Я не могу заставить ReactiveUI MessageBus работать на Windows Phone 7 - PullRequest
3 голосов
/ 10 августа 2011

Я пытаюсь реализовать обмен сообщениями между моими ViewModels Мой код подтверждения концепции:

RxApp.MessageBus.Listen<int>("test")
    .Subscribe(i => MessageBox.Show(i.ToString()));    

RxApp.MessageBus.SendMessage<int>(42, "test");

Мои юнит-тесты прошли успешно, поэтому я подумал, что это может быть проблема с расписанием. Я вручную установил Планировщик: RxApp.DeferredScheduler = DispatcherScheduler.Instance;

но оно все равно было настроено на правильный экземпляр, так что, как и ожидалось, никаких изменений. Я могу зарегистрироваться для сообщений. Я просто никогда не получаю: / Использование контракта с пустым сообщением также ничего не меняет.

Я пробовал и на эмуляторе, и на устройстве (Mango SDK Refresh / Mango Build 7712)

Я надеюсь, что кто-то здесь может мне помочь :) Любые намеки очень ценятся.

Ответы [ 2 ]

3 голосов
/ 11 августа 2011

Я подозреваю, что это ошибка MessageBus - кто вообще пишет это дерьмо?

** Я посмотрю на это:)

0 голосов
/ 23 августа 2011

Моя ошибка, если предположить, что это было что-то нетривиальное, что связано с Планировщиком:)

Проблема заключалась в том, что класс Tuple, используемый в качестве ключа Dictionary в WP7 / SL, не реализует полезное переопределение Equals().

Словарь никогда не возвращал совпадений при поиске зарегистрированных тем.

GetHashCode() также следует заменить пользовательской реализацией.

...