Reflection을 이용한 함수 호출스택 구하기(메소드)
C# / 2009. 3. 6. 12:58
A() -> B() ->C() 함수를 호출 했다고 가정 했을 때
C() 함수에서 A() 함수명을 구할 수 있다.
private void Defender4()
{
int count = new StackTrace().FrameCount; //현재의 호출스택 카운트
StackTrace stacktrace = new StackTrace();
MethodBase method = null;
for (int i = 0; i <count ; i++)
{
method= stacktrace.GetFrame(i).GetMethod(); //i 번째에 해당하는 호출스택 메소드 반환
Console.WriteLine("{0}번 째 호출스택 : {1}",i,method.Name);
}
Console.WriteLine();
}
로그 작성에서 사용 하면 좋을 듯 함..