我想從我的服務層公開IObservable。IObservable - 如何發送/發佈/將新值推送到集合
爲了簡單起見,可以說內部服務層從遠程服務器(通過套接字)獲取消息,並且套接字庫需要具有MessageReceived方法的IMessageReponse對象傳遞給它。
服務層內部創建MessageResponse對象,並在消息到達時通過Action回調得到通知。
鑑於這種設計,我需要能夠推到的IObservable但在任何我見過的例子新消息,Observable.XYZ似乎並不支持簡單的發送/發佈/ Push方法...
如何在此場景中連接我的Observable.XYZ?
我想要這樣的東西...注意我知道這是IObservable的一個非常基本的實現,但我不會想到我需要自己編寫這段代碼......我本以爲會有東西會有開箱即送給我。
public class PushObservable<T> : IObservable<T>
{
private IList<IObserver<T>> _listeners = new List<IObserver<T>>();
public void Send(T value)
{
foreach (var listener in _listeners)
listener.OnNext(value);
}
public IDisposable Subscribe(IObserver<T> observer)
{
_listeners.Add(observer);
}
}
如果您反編譯RX庫並查看其中一個主題(IObservers和IObservables),這就是他們的工作原理。 – 2011-03-01 22:37:14
您能澄清一下這個問題嗎?您是要將內部服務層公開爲IObservable,還是另外希望將自己的消息發送出IObservable? – 2011-03-02 03:44:10