简体   繁体   English

如何将此事件展开为可观察的顺序?

[英]How Can I Unfold This Event to an Observable Sequence?

I'm trying to write an Add-In for Outlook, and one of the events I'm using is ItemsEvents_Event.ItemChange - and its handler's signature takes an Object as a parameter (the item that changed): 我正在尝试为Outlook编写外接程序,而我正在使用的事件之一是ItemsEvents_Event.ItemChange其处理程序的签名将Object作为参数(已更改的项目):

items.ItemChange += CalendarItems_ItemChange;

private void CalendarItems_ItemChange(object anItem) {...}

How would I use Observable.FromEvent or Observable.FromEventPattern to create an observable sequence from this event "stream" instead of attaching/detaching the event as usual? 我将如何使用Observable.FromEventObservable.FromEventPattern从此事件“流”创建可观察序列,而不是像往常那样附加/分离事件?

You need to use the FromEvent conversion overload to tell Rx how it should interpret your event: 您需要使用FromEvent转换重载来告诉Rx如何解释事件:

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

In your case it would look like: 在您的情况下,它看起来像:

var source = Observable.FromEvent<ItemsEvents_ItemEventChangeHandler, object>(
  emit => new ItemsEvents_ItemEventChangeHandler((obj) => emit(obj)),
  h => items.ItemChange += h,
  h => items.ItemChange -= h);

Similar answer 类似答案

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM