簡體   English   中英

如何將此事件展開為可觀察的順序?

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

我正在嘗試為Outlook編寫外接程序,而我正在使用的事件之一是ItemsEvents_Event.ItemChange其處理程序的簽名將Object作為參數(已更改的項目):

items.ItemChange += CalendarItems_ItemChange;

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

我將如何使用Observable.FromEventObservable.FromEventPattern從此事件“流”創建可觀察序列,而不是像往常那樣附加/分離事件?

您需要使用FromEvent轉換重載來告訴Rx如何解釋事件:

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);

類似答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM