2010-01-17 3 views
0

이제 이벤트 및 리플렉션과 관련된보다 이론적 인 질문이 있습니다. 문제는 "EventInfo를 통해 이벤트와 연결된 형식 대리자의 필드를 가져올 수 있습니까?"입니다.이벤트 및 리플렉션과 관련된 델리게이트 필드

기본적으로 이벤트를 정의하면 (암시 적으로) 컴파일러에서 클래스에 개인 위임 필드를 추가합니다 (위임자는 방금 선언 한 이벤트와 연결된 델리게이트와 동일한 유형 임). 리플렉션을 통해, 특히 EventInfo를 통해 해당 필드를 가져올 수 있습니까?

그리고 이벤트를 명시 적으로 정의 할 때?

미리 감사드립니다. 건배)

답변

0
myEvent.GetType().GetGenericArguments()[0] 

하지만 myTest가 호출되기 전에 null이 아닌지 확인하십시오. EventInfo를 사용하려면 :

typeof (Program).GetEvent("myTest").EventHandlerType.GetGenericArguments()[0] 

또는 위임 유형을 원하셨습니까?

typeof (Program).GetEvent("myTest").EventHandlerType 
+0

귀하의 답변은 좋지만 이벤트와 관련된 대리인 필드를 검색하는 데 EventInfo 클래스의 메서드를 사용할 수 있는지 묻는 질문에 답변했습니다. – Bruno

+0

또는 형식이 아니라 이벤트에 추가 된 각 대리자에 대한 포인터를 의미합니까? –

관련 문제