如何订阅来自不同模块/组件的事件?

问题描述:

我这样做是为了发布/一个模块内订阅事件:如何订阅来自不同模块/组件的事件?

eventAggregator.GetEvent<StudioEnableEvent>().Publish((bool)arguments.ElementAt(1)); 

然后:

eventAggregator.GetEvent<StudioEnableEvent>().Subscribe(GetStudioEnableFromImport); 

和StudioEnableEvent很简单:

public class StudioEnableEvent : PubSubEvent<bool> 
    { 
    } 

现在我想办相同,但对于位于两个不同模块中的发布者和订阅者,并且不需要参考模块组件。

解决此问题的最佳方法是在解决方案中有所有模块项目都可以引用的另一个项目。我喜欢叫我的核心,或沿着这条线。在那里,我创建了事件类,这样我可以在所有模块中共享它们。您也可以在此项目中声明任何其他共享资源。

+0

是的,我也在想这个。我已经为共享的接口做了这个,但我只是想知道是否有更好的方法。谢谢。 – Ivan

+1

我想不出一个更好的方法。我喜欢这些集中式项目;他们适合举办活动,例外,简单的服务等。 –