c# 获得方法的调用者的调用者的类名,方法名等

来源:互联网 发布:轮回日本恐怖片知乎 编辑:程序博客网 时间:2024/05/05 19:56

转载出处:http://zhidao.baidu.com/question/554511506.html


1、返回当前方法所在的类名:

using System.Reflection;

sting className = MethodBase.GetCurrentMethod().ReflectedType.Name;

2、返回调用当前方法的方法名:

using System.Diagnostics;
using System.Reflection;

StackTrace trace = new StackTrace();

MethodBase methodName = trace.GetFrame(1).GetMethod();
以上方法是获得的是调用者 问题是我需要获得调用者的调用者或者一直往上找。

public static void getFileName()
{
string className = MethodBase.GetCurrentMethod().ReflectedType.Name;
StackTrace trace = new StackTrace();
MethodBase methodName = trace.GetFrame(1).GetMethod();
Console.Write(className+methodName.Name);
}

class Program
{
static void Main(string[] args)
{

SeleniumUtil.getFileName();
Console.ReadLine();
}

以上方法的需求是 我需要获得Program 类和方法名Main
求搞定 分数好说。



你已经写出来了,只要略加判断就是了
trace.GetFrame(1).GetMethod();
这个括号里面的参数从0开始,0就是自己,1就是上一个,2就是上上一个3就是上上上一个
如果再上面没有了的话,就会返回一个异常字符串,你判断这个异常字符串是什么,就停止循环就好了
只要循环,不需要递归。

原创粉丝点击