C# 获得当前方法 和 方法调用链 的 方法
2014-05-06 09:47
513 查看
一个获得方法名的方法,depth表示调用此方法的回溯深度。
比如,A方法调用B方法,B方法调用GetCurrentMethodFullName(2),那么得到的结果是A方法的全名(namespace+class名+method名)
若要获得当前方法,depth应为0
internal static string GetCurrentMethodFullName(int depth)
{
try
{
StackTrace st = new StackTrace();
string methodName = st.GetFrame(depth).GetMethod().Name;
string className = st.GetFrame(depth).GetMethod().DeclaringType.ToString();
return className + "." + methodName;
}
catch
{
return null;
}
}
如果不需要知道方法调用链,那么其实用MethodBase.GetCurrentMethod()就可以得到当前方法,可以用Name得到名字,用DeclaringType.ToString()得到namespace和class名。
MethodInfo method = (MethodInfo)MethodBase.GetCurrentMethod();
比如,A方法调用B方法,B方法调用GetCurrentMethodFullName(2),那么得到的结果是A方法的全名(namespace+class名+method名)
若要获得当前方法,depth应为0
internal static string GetCurrentMethodFullName(int depth)
{
try
{
StackTrace st = new StackTrace();
string methodName = st.GetFrame(depth).GetMethod().Name;
string className = st.GetFrame(depth).GetMethod().DeclaringType.ToString();
return className + "." + methodName;
}
catch
{
return null;
}
}
如果不需要知道方法调用链,那么其实用MethodBase.GetCurrentMethod()就可以得到当前方法,可以用Name得到名字,用DeclaringType.ToString()得到namespace和class名。
MethodInfo method = (MethodInfo)MethodBase.GetCurrentMethod();
相关文章推荐
- C# 获得当前方法 和 方法调用链 的 方法
- 利用sender的Parent获取GridView中的当前行 不用AJAX实现前台JS调用后台C#方法(小技巧) AjaxControlToolkit的CalendarExtender的本地化
- c# 获得当前绝对路径的方法(超简单)
- C#如何判断是哪个类的那个方法调用了当前方法
- C# 获得程序当前目录的方法
- 解析c#在未出现异常情况下查看当前调用堆栈的解决方法
- C#中获得当前执行文件相关信息的几种方法
- [转载]C# 获得当前目录和执行目录的一些方法
- C#中RichTextBox获得当前行号的方法
- C# 获得当前目录和执行目录的一些方法
- C#基础-获得当前程序的 空间名.类名.方法名
- C# 获得当前目录和执行目录的一些方法
- C# 获得当前目录和执行目录的一些方法
- C#基础-获得当前程序的 空间名.类名.方法名
- C# 获得当前目录和执行目录的一些方法
- C#如何获取调用当前方法的方法名
- 【C#】通过查找当前堆栈帧,找到调用的方法名
- C#基础-获得当前程序的 空间名.类名.方法名
- C#中获得当前执行文件相关信息的几种方法
- c# 反射Invoke调用方法获得out带出的值