Doa*_*air 2 .net system.reactive
我有一个Subject<T>,我希望在订阅它时得到通知.我找不到这个机制.我错过了什么吗?
例如:
public class AccountManager
{
private ReplaySubject<string> _accountEvents = new ReplaySubject<string>();
public AccountManager()
{
}
public void Add(string val)
{
_accountEvents.OnNext(val);
}
public IObservable<string> AccountEvents { get { return _accountEvents.AsObservable<string>(); } }
}
Run Code Online (Sandbox Code Playgroud)
可以AccountManager在任何其他代码调用通知Subscribe的AccountEvents属性.
这个
var subj = new Subject<string>();
var o = Observable.CreateWithDisposable<string>(observer =>
{
Console.WriteLine("subscribed");
return subj.Subscribe(observer);
});
Run Code Online (Sandbox Code Playgroud)
或(类似斯科特的回答)
var o = Observable.Defer(() =>
{
Console.WriteLine("subscribed");
return subj;
});
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,你有更多的自由,因为你有一个观察者作为参数传入,所以除了将主题输出路由到观察者,你可以在你的逻辑需要时调用observer.OnNext,OnError,OnComplete.
| 归档时间: |
|
| 查看次数: |
332 次 |
| 最近记录: |