C#

Reflection을 이용한 함수 호출스택 구하기(메소드)

초초초보 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();
        }


로그 작성에서 사용 하면 좋을 듯 함..