c# 方法调用链System.Diagnostics.StackTrace

来源:互联网 发布:北京市网络宣传管理处 编辑:程序博客网 时间:2024/06/01 17:03

一般用下面的方法处理:

/// <summary>/// 获取调用链上的方法/// </summary>/// <param name="depth">回朔深度</param>public static MethodBase GetCurrentMethod(int depth) {    try {        System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace();        return st.GetFrame(depth).GetMethod();    } catch {        return null;    }}
具体的调用回溯怎么理解请看下面的小demo:
static void Main(string[] args) {    method1();    Console.ReadKey();}static void method1() {    method2();    Console.ReadLine();}static void method2() {    System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(true);    Console.WriteLine(st.GetFrame(2).GetMethod().Name.ToString());    Console.WriteLine(st.GetFrame(1).GetMethod().Name.ToString());    Console.WriteLine(st.GetFrame(0).GetMethod().Name.ToString());}
输出结果:




0 0
原创粉丝点击