【问题标题】:using IObservable with unity统一使用 IObservable
【发布时间】:2010-09-26 17:06:05
【问题描述】:

我想使用 iobservable 模式来公开事件流。问题是我使用统一来创建观察者和事件生成器。我宁愿不必在应用程序启动时更新这两个,这样我就可以开始监听事件。有人对此有什么建议吗?

【问题讨论】:

  • 您能说得更详细一点吗?我不确定这里是否有足够的信息来提供建议。
  • 基本问题是什么时候开始收听。如果 Unity 容器中有两个单例(使用容器控制的生命周期管理器)。它们将在首次使用时立即创建,但您不想在创建容器时创建它们。因此,当我创建事件发布者(或发送第一个事件)时,我希望在那个时间点创建侦听器(以便它可以开始侦听)。这有意义吗?
  • 抱歉耽搁了。如果您在评论前加上@person 的名字,他们将在登录 SO 时收到通知:)

标签: unity-container system.reactive


【解决方案1】:

看了你对我评论的回复(抱歉耽搁了,看我的评论)我想到了两种解决方法。

首先,让订阅者订阅一个IObservable,该IObservable 包装(即订阅)尚未创建的IObservable 源。这样,订阅者可以立即订阅,但在创建源之前,值不会开始传递。

另一种选择是创建EventAggregatorIObservable 风味版本,与Prism 一起提供(2.2,我还没有签出4)。 EventAggregator 充当广播事件系统,任何代码都可以请求Event,它可以被订阅或发布。在您的情况下,该事件将实现ISubject(即IObservableIObserver)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    相关资源
    最近更新 更多