Caliburn.Micro IEventAggregator发布方法缺少重载

时间:2014-06-08 14:19:30

标签: caliburn.micro

我第一次在线学习Caliburn.Micro的一些教程。有些教程使用的是旧的1.3.0版本,我使用的是较新的2.0.0.6版本,这是最新的Nuget软件包,可能是这种差异的根源:

尝试发布以下消息时:

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

编译器抛出错误,指出未找到重载。发布的唯一重载可用具有以下签名:     void Publish(对象消息,Action marshal)

我通过使用下面显示的后台工作线程方法让这个工作,但在我的情况下,它似乎有点矫枉过正。是否真的从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));
}

最后,奖励积分:

除了在后台线程上发布消息之外,这第二个参数有什么用呢?有人可以提供一些其他可以用于此重载的示例吗?

1 个答案:

答案 0 :(得分:11)

在Caliburn Micro版本2.0中,EventAggregator.Publish方法也会采取措施来整理事件。要保持2.0之前的行为,您应该切换到EventAggregator.PublishOnUIThread方法。有关1.5和2.0之间不兼容性的信息,请参阅迁移说明here

总的来说,我认为Codeplex文档有点过时了。有关最新new dedicated web site的信息,请参阅documentation