2011-09-13 2 views
0

У меня есть класс, который имеет событие, определенное как Action<Guid>, в отличие от классического EventHandler с EventArgs. Есть ли способ преобразовать это в IObservable, так же, как это делается со стандартным EventHandler? Мне нужно сделать это, чтобы я мог объединиться с другими IObservables.Возможно ли создать IObservable из прослушивателя Action?

ответ

2

Если у вас есть этот класс:

public class Foo 
{ 
    public event Action<Guid> Guid; 
} 

Тогда это код, который нужно превратить нестандартное событие в IObservable<Guid>:

var foo = new Foo(); 

var guids = Observable.FromEvent<Guid>(
    h => foo.Guid += h, 
    h => foo.Guid -= h); 
+0

Я вернулся вокруг попробовать это, и он не работает. Я получаю сообщение об ошибке «Невозможно преобразовать лямбда-выражение в тип« объект », потому что это не тип делегата« – Random

+0

@Random - я только что проверил мой код выше, и он отлично работает. Используете ли вы версию 1.0? – Enigmativity

+0

Нет. Я использую v2.0.50727 из System.Reactive. – Random

Смежные вопросы