C# 获得当前方法 和 方法调用链 的 方法
一个获得方法名的方法,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();
最新文章
- javascript字符转直接量和转义字符
- PHP PDO函数库详解
- 产生某个区间的随机整数 int #Java
- 使用 Sandcastle 生成代码帮助文档
- 黑马程序员-nil Nil NULL NSNull 野指针和空指针
- linux下PostgreSQL数据库的源码安装
- [AngularJS] Adding custom methods to angular.module
- apache ab的安装步骤
- 实现一个简单的FTP服务器(十四)
- Android的ADB工具使用
- (9)集合之Set,HashSet,TreeSet
- MySQL5.7.21解压版安装详细教程以及一些问题的解决
- Apollo 3.0 硬件与系统安装指南
- nginx+uwsgi+djangos部署项目完整
- php配置虚拟主机
- sizeof和strlen区别(转)
- Dictionary的应用
- 「功能笔记」Linux常用Shell命令(终端命令)备忘录
- hibernate的反向生成改懒加载的地方
- HDU 5901 Count primes 大素数计数