【发布时间】:2009-11-19 19:55:21
【问题描述】:
我经常对此感到疑惑,但现在我遇到了一个包含它的逻辑,我想我应该继续寻求一些帮助来破译基本原理。问题如下,我正在查看一个使用复合应用程序库的 WPF 应用程序。在应用程序的源代码中,我在视图的演示文稿中遇到了以下代码行。为了方便起见,我将其称为 Presentation A:
private void OnSomethingChanged(SomeArgumentType arguement)
{
UnityImplementation.EventAggregator.GetEvent<EventA>().Publish(null);
}
当我在上面给定的方法中看到 Publish 方法时,我的直觉告诉我在某个地方和另一个类中肯定有一个订阅,我将它称为 Presentation B,有以下内容:
UnityImplementation.EventAggregator.GetEvent(Of EventA).Subscribe(AddressOf OnSomeEventA)
在同一个类中有一个名为 OnSomeEventA 的私有函数,其中包含一些逻辑。
我的问题是这里的所有东西是如何连接的?这里的“发布”“订阅”到底实现了什么?当“某事”发生变化时,编译器如何知道它必须遵循 OnSomethingChanged 中的逻辑,该逻辑将“发布”一个由另一个类“订阅”的事件,其中描述了事件处理程序的逻辑?了解这个过程的底层布线会很棒。
谢谢
【问题讨论】:
标签: wpf events unity-container prism publish-subscribe