이 질문 은 코드가 이미 자체 이벤트 처리기를 이벤트에 추가했는지 확인할 수있는 방법 이 있는지 묻습니다. 그러나 주어진 답변은 이벤트를 소유 한 동일한 클래스 내부에서만 작동합니다. ( Delegate.GetInvocationList 및 기타.)
AppDomain.CurrentDomain.AssemblyResolve에 사용자 지정 이벤트 처리기를 추가하고 싶습니다 . 다시 추가하기 전에 내 사용자 지정 처리기가 이미 추가되었는지 확인하는 방법이 있습니까? (이 및 기타 표준 라이브러리 이벤트의 경우.)
대답이 정말로 "불가능합니다."라면 그럼 답으로주세요.
불가능합니다.
기본적으로 외부 이벤트에 대한 작업은 "구독"및 "구독 취소"뿐입니다.
이제 구독 하기 전에 언제든지 구독을 취소 할 수 있습니다. 구독 취소는 지정된 처리기가 아직 이벤트 처리기가 아닌 경우 작동하지 않습니다. 당신은 당신이 할 경우 항상 그렇게, 당신은 확실히 정확히 하나의 핸들러 구독을해야합니다. 구독 하는 모든 곳에서 주의를 기울여야한다는 뜻입니다. 이상적으로는 해당 코드를 한 곳에 두는 것이 좋습니다.
(또는 이벤트 구독을 변경하면 한 번만 구독한다는 것을 쉽게 알 수 있습니다 ...)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다