public class Foo
{
private ReplaySubject<bool> whenBarChanged = new ReplaySubject<bool>();
public IObservable<bool> WhenBarChanged
{
get { return whenBarChanged; }
}
}
此代码公开了一个IObservable接口,揭示主题行为的唯一方法是通过文档。
您是否知道公开Subject的Observable部分的其他方式是在不暴露Observer部分的情况下工作?
答案 0 :(得分:2)
您可以使用AsObservable隐藏可观察对象的身份。
public class Foo
{
private ReplaySubject<bool> whenBarChanged = new ReplaySubject<bool>();
public IObservable<bool> WhenBarChanged
{
get { return whenBarChanged.AsObservable(); }
}
}
答案 1 :(得分:0)
ReplaySubject
和BehaviorSubject
都没有任何不属于IObserver<T>
或IObservable<T>
的方法。您希望公开哪些“行为”不在这些接口中?