zoukankan      html  css  js  c++  java
  • 获取当前程序运行的堆栈的副本集合

    从DNN中拔出的,效果不赖。。。获取程序运行时候异常的调用堆栈位置

     /// <summary>         /// 获取调用的堆栈信息 获取当前程序运行的堆栈的副本集合         /// </summary>         private static StackFrame CallingFrame         {             get             {                 StackFrame frame = null;                 ///返回当前堆栈跟踪中所有堆栈帧的副本。                 var stack = new StackTrace().GetFrames();                 int frameDepth = 0;                 if (stack != null)                 {                     ///穷历  直到找到要调用日志或者异常的时候 的前一个方法    就查询到了 出错的执行方法的位置                     var reflectedType = stack[frameDepth].GetMethod().ReflectedType;                     while (reflectedType == BuildManager.GetType("DotNetNuke.Services.Exceptions.Exceptions", false)                             || reflectedType == typeof(DnnLogger)                             || reflectedType == typeof(DnnLog))                     {                         //排除这些类 找到指定的调用的类 Type                         frameDepth++;                         reflectedType = stack[frameDepth].GetMethod().ReflectedType;                     }                     frame = stack[frameDepth];                 }                 return frame;             }         }
  • 相关阅读:
    C#高级特性_Attribute
    C#高级特性_Lambda
    委托(delegate)
    C# 属性、索引
    C#中的interface
    枚举型Enum和结构型Stuct
    javascript学习笔记
    github page 和 hexo 搭建在线博客
    2015/9/22 开通博客园
    phoenix 入门
  • 原文地址:https://www.cnblogs.com/micro-chen/p/4228302.html
Copyright © 2011-2022 走看看