이 이벤트를 관찰 가능한 시퀀스로 어떻게 전개 할 수 있습니까?

스콧 베이커

글쎄, 내가 일을 처리했다고 생각할 때, 나는 또 다른 커브를 던진다.

이 작업을 수행하는 대신 관찰 가능한 시퀀스를 만들려고합니다 .

((Outlook.MAPIFolderEvents_12_Event)calendarFolder).BeforeItemMove += 
   Calendar_BeforeItemMove;

private void Calendar_BeforeItemMove(
    object item, 
    Outlook.MAPIFolder destFolder, 
    ref bool cancel){ /*...*/ }

Observable.FromEventPattern<TDelegate, TEventArgs> (Func<EventHandler<TEventArgs>, TDelegate>, Action<TDelegate>, Action<TDelegate>)방법 을 사용하려고 하는데 필요한 매개 변수 때문에 거의 성공하지 못했습니다. 내가 올 수 있었던 가장 가까운 것은 :

var itemBeforeMovedObservable = Observable
    .FromEvent<Outlook.MAPIFolderEvents_12_BeforeItemMoveEventHandler, object>(handler =>
    {
       Outlook.MAPIFolderEvents_12_BeforeItemMoveEventHandler bimEventHandler =
       (obj, f, ref cx) =>  // <-- Cannot resolve symbol 'cx'; Identifier expected
       {
          handler(obj); // <-- shouldn't this have the other parameters as well?
       };
       return bimEventHandler;
    },
    h => ((Outlook.MAPIFolderEvents_12_Event)calendarFolder).BeforeItemMove += h,
    h => ((Outlook.MAPIFolderEvents_12_Event)calendarFolder).BeforeItemMove -= h);

모든 안내에 미리 감사드립니다.

폴프 다니엘스

나는 이것을 테스트하는 방법에 실제로 액세스 할 수 없지만 운영자로 포장하는 것이 가장 좋을 것이라고 말할 것입니다.

//Because that naming is ridiculous
using ItemMoveEventHandler = Outlook.MAPIFolderEvents_12_BeforeItemMoveEventHandler; 
using ItemMoveEvent = Outlook.MAPIFolderEvents_12_Event;

//Used to wrap multiple arguments into a single object
public class MyMoveEventArgs {
  public MyMoveEventArgs(Object item, MAPIFolder folder) {
    this.Item = item;
    this.Folder = folder;
  }

  public Object Item {get; private set;}
  public MAPIFolder Folder {get; private set;}
}

//Create an extension method
public static IObservable<MyMoveEventArgs> BeforeMoveObservable(
  this ItemMoveEvent folder, 
  Func<object, MAPIFolder, bool> shouldCancel) {

    return Observable.FromEvent<ItemMoveEventHandler, 
                              MoveEventArgs>
                    //Use the conversion overload
                    (emit => new ItemMoveEventHandler(
                          //The compiler seems to complain about cancel
                          //being implicit, so explicitly declare your params
                          (object item, MAPIFolder f, out bool cancel) => 
                          {
                            //cancel needs to be set somewhere in the body
                            if (!(cancel = shouldCancel(item, f)) {
                             emit(new MyMoveEventArgs(item, f));
                            }
                          }
                    },
                    h => folder.BeforeItemMove += h,
                    h => folder.BeforeItemMove -= h);

}

그런 다음 그렇게 사용할 수 있어야합니다 (예상되지 않음).

calendarFolder.BeforeMoveObservable((obj, folder => /*Return if the event should be cancelled or not*/)
.Subscribe(x => /*Only reach here if the move was successful*/);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 이벤트를 관찰 가능한 시퀀스로 어떻게 전개 할 수 있습니까?

분류에서Dev

결과를 기반으로 관찰 가능한 다른 호출을 어떻게 할 수 있습니까?

분류에서Dev

클래스 인스턴스가 아닌 이벤트에 변수를 어떻게 전달할 수 있습니까?

분류에서Dev

전단지에 이벤트 오버레이 추가 레이어를 어떻게 사용할 수 있습니까?

분류에서Dev

redux-observable epic에서 관찰 가능한 RxJS를 어떻게 연결할 수 있습니까?

분류에서Dev

클래스에서 var를 어떻게 관찰 할 수 있습니까?

분류에서Dev

구독자에게 반환하기 전에 관찰 가능한 개체를 가로 채서 RxJava에서 수정하려면 어떻게해야합니까?

분류에서Dev

ng-click시 어떻게 이벤트가 발생할 수 있습니까?

분류에서Dev

다트 폴리머 요소를 동적으로 추가 할 때 DOM에서 관찰 가능한 변수를 어떻게 얻습니까?

분류에서Dev

이전 릴리스의 PPA를 어떻게 추가 할 수 있습니까?

분류에서Dev

이 해시를 실행 가능한 JSON으로 어떻게 변환 할 수 있습니까?

분류에서Dev

Android 개발, 이미 시작한 새로운 활동을 시작할 때 이전에 시작한 활동으로 어떻게 전환 할 수 있습니까?

분류에서Dev

파이썬으로 공개적으로 사용 가능한 Google 시트에 어떻게 쓸 수 있습니까?

분류에서Dev

파이썬에서 동일한 uuid 시퀀스를 어떻게 생성 할 수 있습니까?

분류에서Dev

멀티 파트 양식 데이터를 업로드하는 동안 어떻게 uploadProgress를 관찰 할 수 있습니까?

분류에서Dev

이미지를 업로드 할 때 매개 변수를 어떻게 전달할 수 있습니까?

분류에서Dev

변경 가능한 값에 대한 참조가있는 Subvi에서 값 변경 이벤트를 어떻게 트리거 할 수 있습니까?

분류에서Dev

RxJava에서 다른 스레드를 구독 할 때 압축 된 관찰 가능한 리턴이 메인 스레드로 돌아갈 수 있습니까?

분류에서Dev

onclick 이벤트에서 다른 클래스로 문자열을 어떻게 전달할 수 있습니까?

분류에서Dev

고정 길이 데이터로 Keras를 사용하여 시퀀스-투-시퀀스 모델 (RNN / LSTM)을 어떻게 수행 할 수 있습니까?

분류에서Dev

활동이 표시 한 조각으로 이전 활동으로 어떻게 이동할 수 있습니까?

분류에서Dev

어떻게 / 파이썬을 이식 가능한 방식으로 설치할 수 있습니까?

분류에서Dev

로그인 화면 이전에 시작되는 스크립트를 어떻게 실행할 수 있습니까?

분류에서Dev

Netplan : 게이트웨이 및 브로드 캐스트 IP를 제외한 전체 서브넷을 NIC에 어떻게 할당 할 수 있습니까?

분류에서Dev

동일한 테이블에서 두 개의 hasMany 관계를 어떻게 병합 할 수 있습니까?

분류에서Dev

while 루프에 관한 파이썬 코드를 어떻게 개선 할 수 있습니까?

분류에서Dev

XML 이벤트를 Apache Kafka로 어떻게 가져올 수 있습니까?

분류에서Dev

원격 이벤트 관리자에 로컬 이벤트 핸들러를 추가 할 수 있습니까?

분류에서Dev

JavaScript로 익명 이벤트 전달을 어떻게 수행 할 수 있습니까?

Related 관련 기사

  1. 1

    이 이벤트를 관찰 가능한 시퀀스로 어떻게 전개 할 수 있습니까?

  2. 2

    결과를 기반으로 관찰 가능한 다른 호출을 어떻게 할 수 있습니까?

  3. 3

    클래스 인스턴스가 아닌 이벤트에 변수를 어떻게 전달할 수 있습니까?

  4. 4

    전단지에 이벤트 오버레이 추가 레이어를 어떻게 사용할 수 있습니까?

  5. 5

    redux-observable epic에서 관찰 가능한 RxJS를 어떻게 연결할 수 있습니까?

  6. 6

    클래스에서 var를 어떻게 관찰 할 수 있습니까?

  7. 7

    구독자에게 반환하기 전에 관찰 가능한 개체를 가로 채서 RxJava에서 수정하려면 어떻게해야합니까?

  8. 8

    ng-click시 어떻게 이벤트가 발생할 수 있습니까?

  9. 9

    다트 폴리머 요소를 동적으로 추가 할 때 DOM에서 관찰 가능한 변수를 어떻게 얻습니까?

  10. 10

    이전 릴리스의 PPA를 어떻게 추가 할 수 있습니까?

  11. 11

    이 해시를 실행 가능한 JSON으로 어떻게 변환 할 수 있습니까?

  12. 12

    Android 개발, 이미 시작한 새로운 활동을 시작할 때 이전에 시작한 활동으로 어떻게 전환 할 수 있습니까?

  13. 13

    파이썬으로 공개적으로 사용 가능한 Google 시트에 어떻게 쓸 수 있습니까?

  14. 14

    파이썬에서 동일한 uuid 시퀀스를 어떻게 생성 할 수 있습니까?

  15. 15

    멀티 파트 양식 데이터를 업로드하는 동안 어떻게 uploadProgress를 관찰 할 수 있습니까?

  16. 16

    이미지를 업로드 할 때 매개 변수를 어떻게 전달할 수 있습니까?

  17. 17

    변경 가능한 값에 대한 참조가있는 Subvi에서 값 변경 이벤트를 어떻게 트리거 할 수 있습니까?

  18. 18

    RxJava에서 다른 스레드를 구독 할 때 압축 된 관찰 가능한 리턴이 메인 스레드로 돌아갈 수 있습니까?

  19. 19

    onclick 이벤트에서 다른 클래스로 문자열을 어떻게 전달할 수 있습니까?

  20. 20

    고정 길이 데이터로 Keras를 사용하여 시퀀스-투-시퀀스 모델 (RNN / LSTM)을 어떻게 수행 할 수 있습니까?

  21. 21

    활동이 표시 한 조각으로 이전 활동으로 어떻게 이동할 수 있습니까?

  22. 22

    어떻게 / 파이썬을 이식 가능한 방식으로 설치할 수 있습니까?

  23. 23

    로그인 화면 이전에 시작되는 스크립트를 어떻게 실행할 수 있습니까?

  24. 24

    Netplan : 게이트웨이 및 브로드 캐스트 IP를 제외한 전체 서브넷을 NIC에 어떻게 할당 할 수 있습니까?

  25. 25

    동일한 테이블에서 두 개의 hasMany 관계를 어떻게 병합 할 수 있습니까?

  26. 26

    while 루프에 관한 파이썬 코드를 어떻게 개선 할 수 있습니까?

  27. 27

    XML 이벤트를 Apache Kafka로 어떻게 가져올 수 있습니까?

  28. 28

    원격 이벤트 관리자에 로컬 이벤트 핸들러를 추가 할 수 있습니까?

  29. 29

    JavaScript로 익명 이벤트 전달을 어떻게 수행 할 수 있습니까?

뜨겁다태그

보관