获取当前类名方法名;获取调用者类名和方法名

 获取当前方法的名称空间、类名和方法名称

var className=System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.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;
}
复制代码

 获取调用者类名和方法名

 StackTrace trace = new StackTrace();
//获取调用者的类名
string className = trace.GetFrame(1).GetMethod().ReflectedType.Name;
 //获取调用者的方法名
 MethodBase methodName = trace.GetFrame(1).GetMethod();

 

posted @   幽冥狂_七  阅读(2472)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
历史上的今天:
2018-12-04 线程(Thread,ThreadPool)、Task、Parallel
2018-12-04 用《捕鱼达人》去理解C#中的多线程
点击右上角即可分享
微信分享提示