如何通过Prism EventAggregator发布事件?

时间:2014-11-12 07:18:33

标签: c# .net events prism-4 eventaggregator

目前我正在尝试使用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

我在网上看了很多文章,但无法弄清楚我做错了什么。

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

最后我发现了问题。

我在我的模块中混淆了类引用。

我在一个模块中使用了PubSubEvent类,在另一个模块中使用了CompositePresentationEvent类。这是我最初问题的根本原因。

在我的所有模块中使用PubSubEvent后,它可以工作。