目前我正在尝试使用prism实现EventAggregator,以在两个模块之间发布和订阅事件。
我尝试按照此处描述的方式MSDN实现它。 但是我已经开始了。
我在Infrastructure命名空间中实现了一个事件:
namespace Infrastructure
{
public class MyAggregatorEvent : PubSubEvent<string>{}
}
在我的第一个模块中,我想以下列方式发布/提升此事件“
private PublishEvent()
{
IEventAggregator _eventAggregator = ServiceLocator.Current.GetInstance<IEventAggregator>();
_eventAggregator.GetEvent<MyAggregatorEvent>().Publish("Test");
}
但问题是我无法调用Publish()方法。我总是得到一个错误说:
Infrastructure.MyAggregatorEvent'不包含'Publish'的定义,也没有扩展方法'Publish'接受第一个参数 类型'Infrastructure.MyAggregatorEvent'可以找到(是你 缺少using指令或程序集引用?)D:\ PviVm.cs ModulePvi
我在网上看了很多文章,但无法弄清楚我做错了什么。
有谁知道我做错了什么?
答案 0 :(得分:0)
最后我发现了问题。
我在我的模块中混淆了类引用。
我在一个模块中使用了PubSubEvent类,在另一个模块中使用了CompositePresentationEvent类。这是我最初问题的根本原因。
在我的所有模块中使用PubSubEvent后,它可以工作。