本文主要是介绍c# 获得方法的调用者的调用者的类名,方法名等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转载出处: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就是上上上一个
如果再上面没有了的话,就会返回一个异常字符串,你判断这个异常字符串是什么,就停止循环就好了
只要循环,不需要递归。
这篇关于c# 获得方法的调用者的调用者的类名,方法名等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!