C#获取当前堆栈的各调用方法列表
/******************************************************************* 创建人:HTL* 创建时间:2015-06-03 19:54:49* 说明: 获取出错时的堆栈调用方法列表* Huangyuan413026@163.com*******************************************************************/ using System;public class StackTraceTest {public static void Main(){m1();}static void m1(){m2();}static void m2(){m3();}static void m3(){ResponseWrite();}static void ResponseWrite(){ResponseWriteError();}static void ResponseWriteError(){//将错误信息写入日志 Console.WriteLine(GetStackTraceModelName()); }/// <summary>/// @Author: HTL/// @Email: Huangyuan413026@163.com/// @DateTime: 2015-06-03 19:54:49/// @Description: 获取当前堆栈的上级调用方法列表,直到最终调用者,只会返回调用的各方法,而不会返回具体的出错行数,可参考:微软真是个十足的混蛋啊!让我们跟踪Exception到行把!(不明真相群众请入) /// </summary>/// <returns></returns>static string GetStackTraceModelName(){//当前堆栈信息System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace();System.Diagnostics.StackFrame[] sfs = st.GetFrames();//过虑的方法名称,以下方法将不会出现在返回的方法调用列表中string _filterdName = "ResponseWrite,ResponseWriteError,";string _fullName = string.Empty, _methodName = string.Empty;for (int i = 1; i < sfs.Length; ++i){//非用户代码,系统方法及后面的都是系统调用,不获取用户代码调用结束if (System.Diagnostics.StackFrame.OFFSET_UNKNOWN == sfs[i].GetILOffset()) break;_methodName = sfs[i].GetMethod().Name;//方法名称//sfs[i].GetFileLineNumber();//没有PDB文件的情况下将始终返回0if (_filterdName.Contains(_methodName)) continue;_fullName = _methodName + "()->" + _fullName;}st = null;sfs = null;_filterdName = _methodName = null;return _fullName.TrimEnd('-','>');} }
C#获取当前堆栈的各调用方法列表相关推荐
- java 类名方法_Java学习——根据类名获取方法名,并调用方法
最近在项目中调用mybatis获取到了实体类对象,但是我们需要从实体类对象中取属性值,所以这里就需要以下几点知识: 1.根据Object对象获取类名 2.根据类对象获取所有的对象方法名 3.根据方法名 ...
- window.parent方法获取父页面属性或者调用方法
父页面: <script type="text/javascript">var serviceType = "服务类型"; </script& ...
- 调用实现天气预报功能android,Android编程实现获取新浪天气预报数据的方法
本文实例讲述了Android编程实现获取新浪天气预报数据的方法.分享给大家供大家参考,具体如下: 新浪天气预报地址: http://php.weather.sina.com.cn/xml.php?ci ...
- 通过反射获取及调用方法(Method)
1.获取方法 使用反射获取某一个类中的方法,步骤: ①找到获取方法所在类的字节码对象 ②找到需要被获取的方法 Class类中常用方法: public Method[] getMethods():获取包 ...
- java 反射调用方法_java的反射机制,以及通过反射获取方法,变量等操作
我们应用会用到反射这个知识点,肯定是想要在运行时得到类的信息,根据类的那些信息去做一些特定的操作.那么,首先无疑就是得到类的信息,在JDK中提供了Class对象来保存类的信息.所以,反射的第一步就是得 ...
- .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)...
大家都说反射耗性能,但是到底有多耗性能,哪些反射方法更耗性能:这些问题却没有统一的描述. 本文将用数据说明反射各个方法和替代方法的性能差异,并提供一些反射代码的编写建议.为了解决反射的性能问题,你可以 ...
- python调用接口获取数据_python:接口间数据传递与调用方法
如下所示: import requests import unittest import json from pubulic_way.get_token import getSession class ...
- C#获取WebService接口的所有可调用方法[WebMethod]
C#获取指定的WebService接口的所有可调用方法,将其绑定的树图控件(TreeView)中,我们引用天气WebService服务为例,联网情况下均可用. PS:天气WeatherWebServi ...
- 天气api获取24小时逐小时天气预报接口调用方法
接口返回json格式 返回最近24小时每一个小时的天气情况, 包含当前时间, 天气情况, 温度, 风力风向 返回示例, 长度问题, 只展示部分结果 "hours":[ {" ...
最新文章
- 天池NLP大赛来了!
- SAP 往一个角色里增加事务代码
- IDC运营商如何轻松建立属于自己的数据备份服务中心
- 在Tableau中实现表格下钻
- 通过AI技术研究网红对其粉丝的消费品牌意识的影响
- AngularJS:在Windows上安装Yeoman
- kube-controller-manager 配置参数解读
- php在html中生成option,使用PHP可以将HTML SELECT/OPTION值设为NULL吗?
- mfc 固定编辑框输入上限和下限_MFC中编辑框数字限制范围
- 《GPUPro》笔记
- java 蓝桥杯算法训练 数字三角形(题解)
- myeclipse 内存不够用报错PermGen space 和 An internal error has occurred.
- JAVA中如何创建一个二维数组,然后给二维数组赋值!
- 推荐系统实践 - 基于用户行为分析的推荐算法
- 架构师原来是这样修炼出来的
- mysql 5.6 触发器_【mysql】mysql触发器使用示例
- 【学懂数据结构】二叉树之舞之二叉树
- 重读经典(CLIP下):《Learning Transferable Visual Models From Natural Language Supervision》
- layui省市县三级联动,如何设置select选择时,值为省市县code码
- 共轭梯度法确实存在数值精度的要求