事件在c和silverlight中向上传递对象链

本文关键字:对象 silverlight 事件 | 更新日期: 2023-09-27 18:20:14

我有一组协作对象,由于关注点分离、单一负责原则和测试能力,我希望保持这个结构的完整性。

我面临的挑战是如何最好地处理链上的异步事件。

这是我的场景:

ObjectA引用ObjectB引用ObjectC引用ObjectD。

ObjectA对ObjectB进行调用等等,最终导致ObjectD对外部系统进行异步调用。

问题:我正在寻找推荐的最佳实践,如何让ObjectA进行非阻塞调用,然后从ObjectD收到异步完成结果的通知。

我使用它来向下传递和链接事件处理程序,但这似乎过于复杂,我担心性能。

关于如何更好地处理这件事,有什么建议吗?

谢谢。

事件在c和silverlight中向上传递对象链

听起来你可能会从EventAggregator.Net之类的东西中受益。它允许你订阅不同类型的事件,而不必担心谁发布了事件。换句话说,ObjectA订阅了由ObjectD发布的OperationCompleted事件,但ObjectA从未引用过ObjectD或知道它的存在。

您可以查看MVVM Light Toolkit中的Messenger功能。它基本上是一个事件聚合器,就像Caleb Vear建议的那样。MVVM Light的主要目的是促进MVVM模式,但如果您只需要信使功能,则可以单独使用信使功能。