나는 Codedom을 사용하여 메서드에 핸들러를 추가하는 방법을 알아 내려고 노력했지만 아주 멀리하지는 않습니다.Codedom을 통해 "핸들"을 구현하는 방법
Dim StartupMethod As New CodeMemberMethod
StartupMethod.Name = "Startup"
StartupMethod.Attributes = MemberAttributes.Private
하지만 난 Handles btnStart.Click
를 추가하는 방법을 알아낼 수 없습니다 :
Private Sub Startup() Handles btnStart.Click
''# Do work
End Sub
방법은으로 만들 수있을만큼 간단합니다 :
내가 된 CodeDom을 통해 재현하고자하는 방법이다. CodeAttachEventStatement
을 보았습니다. 그러나이 방법을 사용하면 Handles
을 수행 할 수 있다고 생각하지 않습니다.
누구든지 이것을 달성하는 방법을 알고 있습니까?
EDIT : 아래의 솔루션은 VB에서 작동하지만 처리기가 메서드가 아닌 이벤트를 처리하기 때문에 C#에서는 작동하지 않습니다.
을 설명하는 또 다른 가능성은 CodeSnippetTypeMember()를 사용하는 것입니다 핸들러, 생성자'New()'문과 같이? –
+1, 예, 생성자를 생성하고 CodeAttachEventStatement를 사용하십시오. –
네, 아직하지는 않았지만 리플렉터의'Handles ... '코드를 검사하면 New() 생성자에서 AddHandler 메소드를 찾을 수있을 것입니다. –