当前位置: 首页>>代码示例>>C#>>正文


C# StackTrace.Split方法代码示例

本文整理汇总了C#中System.Diagnostics.StackTrace.Split方法的典型用法代码示例。如果您正苦于以下问题:C# StackTrace.Split方法的具体用法?C# StackTrace.Split怎么用?C# StackTrace.Split使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Diagnostics.StackTrace的用法示例。


在下文中一共展示了StackTrace.Split方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: BuildStackTrace

        private RaygunErrorStackTraceLineMessage[] BuildStackTrace(Exception exception)
        {
            var lines = new List<RaygunErrorStackTraceLineMessage>();

            #if !WINRT
              var stackTrace = new StackTrace(exception, true);
              var frames = stackTrace.GetFrames();

              if (frames == null || frames.Length == 0)
              {
            var line = new RaygunErrorStackTraceLineMessage { FileName = "none", LineNumber = 0 };
            lines.Add(line);
            return lines.ToArray();
              }

              foreach (StackFrame frame in frames)
              {
            MethodBase method = frame.GetMethod();

            if (method != null)
            {
              int lineNumber = frame.GetFileLineNumber();

              if (lineNumber == 0)
              {
            lineNumber = frame.GetILOffset();
              }

              var methodName = GenerateMethodName(method);

              string file = frame.GetFileName();

              string className = method.ReflectedType != null
                       ? method.ReflectedType.FullName
                       : "(unknown)";

              var line = new RaygunErrorStackTraceLineMessage
              {
            FileName = file,
            LineNumber = lineNumber,
            MethodName = methodName,
            ClassName = className
              };

              lines.Add(line);
            }
              }
            #else
              string[] delim = { "\r\n" };
              string stackTrace = exception.Data["Message"] as string;
              if (stackTrace != null)
              {
            var frames = stackTrace.Split(delim, StringSplitOptions.RemoveEmptyEntries);

            foreach (string line in frames)
            {
              lines.Add(new RaygunErrorStackTraceLineMessage()
            {
              ClassName = line
            });
            }
              }
            #endif
              return lines.ToArray();
        }
开发者ID:Mpdreamz,项目名称:raygun4net,代码行数:65,代码来源:RaygunErrorMessage.cs

示例2: GetStackTrace

		public static string GetStackTrace(string indent)
		{
#if SILVERLIGHT
			var trace = new System.Diagnostics.StackTrace().ToString();
#elif PORTABLE
			var trace = new StackTrace().ToString();
#else
			var skipCount = new System.Diagnostics.StackTrace().GetFrames().TakeWhile(frame => frame.GetMethod().DeclaringType.Assembly == typeof(DebugView).Assembly).Count();
			var trace = new System.Diagnostics.StackTrace(skipCount, true).ToString();
#endif

			return "\n".Join(trace
					.Split('\n')
					.Select(p => indent + p.Trim()));
		}
开发者ID:ArthurYiL,项目名称:JustMockLite,代码行数:15,代码来源:MockingContext.cs


注:本文中的System.Diagnostics.StackTrace.Split方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。