2011-08-10 61 views
3

我想我的ViewModels 我的概念代碼證明之間實現通訊工作如下:我不能讓ReactiveUI MessageBus在Windows Phone 7的

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

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

我的單元測試運行成功,所以我認爲這可能是一個調度問題。 我手動設置調度:RxApp.DeferredScheduler = DispatcherScheduler.Instance;

但它被設置爲正確的實例無論如何如預期,沒有變化。 我可以註冊消息。我從來沒有收到任何:/ 使用一個空的消息合約也不會改變任何東西。

我試圖在模擬器和設備都(芒果SDK刷新/芒果構建7712)

我希望這裏有人能幫助我:) 任何提示都非常讚賞。

回答

-1

我的錯誤,因爲假設這是一件不容易做到與調度:)

的問題是,在使用的元組類作爲WP7/SL上的字典鍵沒有實現有用的Equals()覆蓋。

查找註冊的主題時,詞典從不返回任何匹配。

GetHashCode()也應該替換爲自定義實現。

+0

這個答案與問題的關係並不明顯。 –

3

我懷疑這是一個MessageBus錯誤 - 誰寫這個廢話,反正呢?

**,我會考慮它:)

+0

我不是故意嘮叨,但我是在這裏的最後期限種); 我很樂意使用MessageBus,但也許我需要找到一個替代品... 無論如何,我想以幫助找到MessageBus的解決方案,如果我可以:) – rollingthunder

+0

即使我修復它,做一個發佈是一個相當耗時的事情。 MessageBus實際上只是一個CS文件,您可以複製它並將其更改爲您想要的(您甚至可以將您的實現命名爲MessageBus2,然後設置RxApp.MessageBus) –

+0

我並不是說要讓你陷入困境,而只是從實際的角度來看,這是最快捷的方式,讓你得到脫鉤 –