У меня есть брокер типизированных сообщений, аналогичный тому, который предоставляет Caliburn:
public interface IMessageBroker
{
void Publish<T>(T message);
IDisposable Subscribe<T>(Action<T> subscriber);
}
Как мне преобразовать подписки в IObservable?
Мне нужен метод расширения, что-то вроде этого:
public static IObservable<T> Subscribe<T>(this IMessageBroker messageBroker)
{
var subject = new Subject<T>();
messageBroker.Subscribe<T>(subject.OnNext);
return subject;
}
проблема в этой реализации заключается в том, что я не могу отписаться, и поэтому она протекает.
Лучшее имя для метода подписки также приветствуется.