일부 클라이언트 코드에서 원하는 서명으로 즉석에서 메서드를 만드는 방법을 배우고 싶습니다. System.Delegate.BeginInvoke
, EndInvoke
및 Invoke
메소드와 같습니다.런타임에 새 메서드 만들기
나는이 메소드들에 대해 System.Delegate
클래스를 찾고 있는데 찾을 수 없다. (어쨌든 늦은 바인딩 메소드에 대한 호출을 동적으로 처리하기 때문에 재미 있지는 않다. DynamicInvoke
제외), 분명히이 메소드들은에서 만들어진다. 실행 시간.
나는 그런 것을 구현해야한다면 어떻게 할 것인가에 대한 내 머리를 긁적입니다. 소리내어 생각하고 있습니다 :
1) 새 어셈블리를 만드는 데 관심이 없기 때문에 코드 DOM이 작동하지 않습니다. 같은 어셈블리 내의 클래스에 새 메서드를 추가하기 만하면됩니다.
2) 좋은 반사 효과는 정상적으로 작동합니다. 클라이언트 코드에서 지정한 것과 동일한 매개 변수를 갖는 새 MethodInfo
을 만들 수 있지만이 새로운 코드를 메서드로 내 클래스에 표시하려면 어떻게해야합니까? MethodInfo
?
누구든지이 문제에 관해 밝힐 수 있습니까?
DynamicMethod를 보았습니까? –
@ 존 세켓 : 오, 정말 고마워요! :-) –
대표자에 대한 이해가 잘못되었습니다. – leppie