Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

Tip & Tech

개발 중 해결한 혹은 미리 알고 있으면 좋은 팁성 글을 공유하는 공간입니다

[C#] StackFrame을 이용하여 메소드 이름 얻기

작성자 : 박종명
최초 작성일 : 2008-06-30 (월요일)
최종 수정일 : 2008-06-30 (월요일)
조회 수 : 3848

 mkex.pe.kr 사이트에 '허동석'님이 올리신 글입니다.

------------------------------------------------------------------------------------------------------------------------

개요

C# 디자인 패턴 등을 적용하는 경우 호출된 메소드 이름을 알아야 하는 경우가 종종 있다

 
내용

Stack을 이용하여 현재 호출된 메소드의 이름을 알아오도록 한다.

 
예제

... 선략 ...

using System.Diagnostics;

... 중략 ...

private void button1_Click(object sender, System.EventArgs e)

{

 StackFrame fr = new StackFrame();

 MessageBox.Show(fr.GetMethod().Name.ToString());

}

실행 결과 : button1_Click
 
그럼 이 메소드를 호출한 메소드를 알고 싶을 경우는 다음과 같이 사용할 수 있다.

... 선략 ...

using System.Diagnostics;

... 중략 ...

 private void invokeMethod1()

{ invokeMethod2();}

private void invokeMethod2()

{

 StackFrame fr = new StackFrame(-1);

 MessageBox.Show(fr.GetMethod().Name.ToString());

}
 
실행 결과 : invokeMethod1 
적용 예 - 웹 사이트 혹은 비즈니스 로직 설계시 로그정책 시 에러가 난 메소드를 알고 싶을 경우기존의  Exception 메시지로
 
로그로 남기는 것보다 핵심적인 부분만 쉽고 간결하게 로그정책을 세울 수 있다.

이름
비밀번호
홈페이지
BP <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요