2012-02-14 82 views
1

在我的基礎設施我發佈一個事件棱鏡CompositePresentationEvent閃光兩次

this.eventAggregator.GetEvent<ReportAddedEvent>().Publish(report); 

的報告是一個對象

在我的控制器我訂閱了這個事件

this.eventAggregator.GetEvent<ReportAddedEvent>().Subscribe(this.OnReportAdded); 

我的問題是,事件發生兩次。在事件發佈的整個代碼中沒有其他地方,所以我肯定事件不會在其他地方被解僱,我可以看到它只會觸發一次。

任何人都有建議或解決問題或知道問題出在哪裏。

+2

也許訂閱該事件的代碼被稱爲兩次。你應該檢查這個 – Jehof 2012-02-14 12:05:51

+2

保存我的一天。我會給我的第一個孩子Jehof命名。非常感謝 – klashagelqvist 2012-02-14 12:12:30

回答

4

我認爲這個問題是代碼

this.eventAggregator.GetEvent<ReportAddedEvent>().Subscribe(this.OnReportAdded); 

訂閱ReportAddedEvent被執行兩次。

如果應用程序執行多次,您應該檢查(通過使用調試器和線上的斷點)。

+0

它發生在我身上,因爲我在不同的ViewModels中調用了兩次我訂閱該事件的ViewModel的實例。感謝Jehof! – 2013-07-17 23:36:25