이것은 디버깅을위한 것입니다. 그리고 다른 장치에서 테스트 중이므로 Visual Studio를 디버깅에 사용할 수 없습니다.하나의 메소드가 많은 이벤트를 처리하는 경우, 핸들러가 응답하는 이벤트를 알려주는 방법이 있습니까?
바로 지금 수행 할 수있는 최선의 방법은 구체적인 EventArgs
파생 클래스가 처리기로 전달되는지 확인하는 것입니다. 좀 더 구체적으로 처리하고 그것을 처리하는 메소드에서 정확한 이벤트가 호출되는 것을 볼 수있는 방법이 있습니까?
ContentControl cc = my_button;
cc.DragEnter += LogEvent;
cc.DragLeave += LogEvent;
cc.GotFocus += LogEvent;
cc.GotMouseCapture += LogEvent;
cc.GotStylusCapture += LogEvent;
...
private void LogEvent(object sender, EventArgs e)
{
ContentControl cc = (ContentControl)sender;
my_textBlock.Inlines.Add(cc.Name + " " + e.ToString() + Environment.NewLine);
}
나는이 질문을 좀 더 일반적인 용어로 넣고 물어볼 수 있다고 가정합니다. 어떤 대리인이 위임자를 호출하는지 알려줄 수 있습니까?
스택 추적을 다루는 것은 매우 위험합니다. 디버그 및 릴리스 스택 추적은 컴파일러 최적화로 인해 다를 수 있습니다. 나중에 코드가 난독 화 될 수 있으므로 솔루션이 작동을 멈 춥니 다. – oldovets
감사, oldovets. 코드가 단지 디버깅 목적을위한 것이라면 괜찮을 것이라고 생각합니다. –
좋습니다. Enviroment.StackTrace는 긴 문자열이며 올바른 조각을 추출하기가 어렵습니다. 그러나 몇 가지 실험 후에 새로운'System.Diagnostics.StackTrace() .GetFrame (4) .GetMethod(). Name'이 꽤 잘 작동하는 것 같습니다. –