0
public class Foo
{
    private ReplaySubject<bool> whenBarChanged = new ReplaySubject<bool>();
    public IObservable<bool> WhenBarChanged
    {
        get { return whenBarChanged; }
    }
}

此代码公开了一个 IObservable 接口,公开主题行为的唯一方法是通过文档。

你知道在不暴露 Observer 部分的情况下暴露 Subject 的 Observable 部分的其他方法吗?

4

2 回答 2

2

您可以使用AsObservable隐藏可观察对象的身份。

public class Foo
{
    private ReplaySubject<bool> whenBarChanged = new ReplaySubject<bool>();
    public IObservable<bool> WhenBarChanged
    {
        get { return whenBarChanged.AsObservable(); }
    }
}
于 2013-06-23T20:47:38.900 回答
0

ReplaySubject没有BehaviorSubject任何不属于IObserver<T>or的方法IObservable<T>。您想公开哪些不在这些接口中的“行为”?

于 2013-06-19T20:11:42.790 回答