Я хочу выставить IObservable из моего сервисного уровня.
Для простоты скажем, что внутренне сервисный уровень получает сообщение от удаленного сервера (через сокет) и что для библиотеки сокетов требуется объект IMessageReponse, у которого есть метод MessageReceived для передачи ему.
Внутренне уровень службы создает объект MessageResponse и получает уведомление посредством обратного вызова Action при поступлении сообщения.
Учитывая этот дизайн, мне нужно иметь возможность отправлять новые сообщения в IObservable, но в любом из примеров, которые я видел, Observable.XYZ, похоже, не поддерживает простой метод Send / Publish / 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);
}
}