【发布时间】:2014-11-12 07:18:32
【问题描述】:
目前我正在尝试使用 prism 实现一个 EventAggregator 来发布和订阅两个模块之间的事件。
我尝试按照这里MSDN 描述的方式来实现它。 但我一开始就卡住了。
我在我的基础架构命名空间中实现了一个事件:
namespace Infrastructure
{
public class MyAggregatorEvent : PubSubEvent<string>{}
}
在我的第一个模块中,我想通过以下方式发布/引发此事件”
private PublishEvent()
{
IEventAggregator _eventAggregator = ServiceLocator.Current.GetInstance<IEventAggregator>();
_eventAggregator.GetEvent<MyAggregatorEvent>().Publish("Test");
}
但问题是我不能调用 Publish() 方法。我总是收到一条错误消息:
Infrastructure.MyAggregatorEvent' 不包含“发布”的定义,并且没有扩展方法“发布”接受第一个参数 可以找到“Infrastructure.MyAggregatorEvent”类型的(你是 缺少 using 指令或程序集引用?) D:\PviVm.cs ModulePvi
我在网上阅读了很多文章,但无法弄清楚我做错了什么。
有人知道我做错了什么吗?
【问题讨论】:
-
PubSubEvent<T>是否与MyAggregatorEvent位于同一个程序集中?如果没有,您需要在您编写PublishEvent()的项目中添加对此程序集的引用。 -
来自您使用的 MSDN 文章:
PubSubEvent can be found in the Microsoft.Practices.SubSubEvents namespace which is located in the Prism.PubSubEvents NuGet package.您是否包含此程序集?
标签: c# .net events prism-4 eventaggregator