2012-12-19 73 views
1

我想从以下事件创建的IObservable:Observable.FromEvent,不能得到正确的签名

public delegate bool Handle<in T>(T obj, Foo foo); 

event Handle<Bar> Finance; 

如何正确地创建观察到有什么建议?

请注意,Foo和Bar都不基于EventArgs

谢谢!

+0

+1手柄。欢闹的 – JJS

回答

2

你可以尝试这样的:

public class Test 
{ 
    public delegate void Handle<in T>(T obj, Foo foo); 

    public event Handle<Bar> Finance; 
} 

public static class TestEx 
{ 
    static IObservable<Tuple<Bar, Foo>> WhenFinanceChanged(this Test t) 
    { 
     return Observable.Create<Tuple<Bar, Foo>>(observer => 
     { 
      Test.Handle<Bar> handler = (obj, foo) => observer.OnNext(Tuple.Create<Bar, Foo>(obj, foo)); 
      t.Finance += handler; 
      return Disposable.Create(() => t.Finance -= handler); 
     }); 
    } 
}