C# 获取当前方法上一级方法等调用关系

2022-09-14  乐帮网

c#

直接上代码如下

(new StackTrace()).GetFrame(1) // 0为本身的方法;1为调用方法
(new StackTrace()).GetFrame(1).GetMethod().Name; // 方法名
(new StackTrace()).GetFrame(1).GetMethod().ReflectedType.Name; // 类名

以下是示例代码:


public string GetMethodInfo()
{
    string str = "";

    //取得当前方法命名空间    
    str += "命名空间名:" + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Namespace + "\n";

    //取得当前方法类全名 包括命名空间    
    str += "类名:" + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName + "\n";

    //取得当前方法名    
    str += "方法名:" + System.Reflection.MethodBase.GetCurrentMethod().Name + "\n"; str += "\n";

    //父方法
    System.Diagnostics.StackTrace ss = new System.Diagnostics.StackTrace(true);
    System.Reflection.MethodBase mb = ss.GetFrame(1).GetMethod();

    //取得父方法命名空间    
    str += mb.DeclaringType.Namespace + "\n";

    //取得父方法类名    
    str += mb.DeclaringType.Name + "\n";

    //取得父方法类全名    
    str += mb.DeclaringType.FullName + "\n";

    //取得父方法名    
    str += mb.Name + "\n"; return str;
}

转自:https://www.cnblogs.com/cang12138/p/7714651.html

 

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力