C# 如何将此事件展开为可观察的序列?

C# 如何将此事件展开为可观察的序列?,c#,system.reactive,observable,C#,System.reactive,Observable,我正在尝试为Outlook编写外接程序,我使用的事件之一是ItemsEvents\u Event.ItemChange-其处理程序的签名将对象作为参数(更改的项目): 如何使用Observable.FromEvent或Observable.FromEventPattern从该事件“流”创建一个可观察序列,而不是像往常一样附加/分离事件?您需要使用FromEvent转换重载来告诉Rx它应该如何解释您的事件: IObservable<TEventArgs> FromEvent<TD

我正在尝试为Outlook编写外接程序,我使用的事件之一是
ItemsEvents\u Event.ItemChange
-其处理程序的签名将
对象作为参数(更改的项目):


如何使用
Observable.FromEvent
Observable.FromEventPattern
从该事件“流”创建一个可观察序列,而不是像往常一样附加/分离事件?

您需要使用
FromEvent
转换重载来告诉Rx它应该如何解释您的事件:

IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Func<Action<TEventArgs>, TDelegate> conversion, 
                                                         Action<TDelegate> addHandler, 
                                                         Action<TDelegate> removeHandler);
IObservable FromEvent(Func

IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Func<Action<TEventArgs>, TDelegate> conversion, 
                                                         Action<TDelegate> addHandler, 
                                                         Action<TDelegate> removeHandler);
var source = Observable.FromEvent<ItemsEvents_ItemEventChangeHandler, object>(
  emit => new ItemsEvents_ItemEventChangeHandler((obj) => emit(obj)),
  h => items.ItemChange += h,
  h => items.ItemChange -= h);