我正在通过一些在线学习Caliburn.Micro的教程第一次.有些教程使用的是旧的1.3.0版本,我使用的是较新的2.0.0.6版本,这是最新的Nuget软件包,可能是这种差异的根源:
尝试发布以下消息时:
public void Red() { _events.Publish(new ColorEvent(new SolidColorBrush(Colors.Red))); }
编译器抛出一个错误,指出未找到重载.可用的Publish唯一重载具有以下签名:void Publish(object message,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)); }
最后,奖励积分:
除了在后台线程上发布消息之外,这第二个参数有什么用呢?有人可以提供一些其他可以用于此重载的示例吗?
在Caliburn Micro 2.0版中,该EventAggregator.Publish
方法还采取行动来整理事件.要保持2.0之前的行为,您应该切换到该EventAggregator.PublishOnUIThread
方法.有关1.5和2.0之间不兼容性的信息,请参阅此处的迁移说明.
总的来说,我认为Codeplex文档有点过时了.有关最新的文档,请参阅新的专用网站.