2014-06-08 51 views
9

我正在通過一些教程在線學習Caliburn.Micro第一次。一些教程使用的是舊版本1.3.0,我使用的是較新的2.0.0.6版本,這是最新的Nuget軟件包,可能是此差異的根源:Caliburn.Micro IEventAggregator發佈方法丟失過載

試圖發佈以下消息:

public void Red() 
{ 
_events.Publish(new ColorEvent(new SolidColorBrush(Colors.Red))); 
} 

編譯器拋出一個錯誤,指出找不到重載。發佈可用的唯一重載具有以下簽名: void發佈(對象消息,操作元帥)

我通過使用下面顯示的後臺工作線程方法得到了此工作,但在我的情況下,它似乎是矯枉過正。是否真的從Caliburn.Micro中刪除了單個參數超載?

此外,文檔在這裏: https://caliburnmicro.codeplex.com/wikipage?title=The%20Event%20Aggregator 仍然顯示使用更簡單的單個參數示例,您只需傳遞消息的示例。此鏈接中的文檔是否正確描述了2.0.0.6?

public void Red() 
{ 
_events.Publish(new ColorEvent(new SolidColorBrush(Colors.Red)), 
action => Task.Factory.StartNew(action)); 
} 

最後,獎勵積分:

這是什麼第二個參數好除了在後臺線程發佈消息?有人可以給出一些其他的例子,說明這種超載可以用於什麼嗎?

回答

11

在Caliburn Micro 2.0版中,EventAggregator.Publish方法也採取措施來封送事件。爲了保持2.0之前的行爲,您應該切換到EventAggregator.PublishOnUIThread方法。有關1.5和2.0之間不兼容的信息,請參閱遷移說明here

一般來說,我相信Codeplex文檔有點過時了。請參閱new dedicated web site瞭解最新的documentation

+0

謝謝安德斯... – Sean

+0

存在於2.0.2 :( – oleksa

+0

我已經與.Publish(價值,新EventAggregator()。PublishOnUIThread)管理這其中PublishOnUIThread是從卡利一種推廣方法沒有EventAggregator.PublishOnUIThread .Micro.EventAggregatorExtensions命名空間 – oleksa