c# – 如何将stacktrace行拆分为命名空间,类,方法文件和行号?

前端之家收集整理的这篇文章主要介绍了c# – 如何将stacktrace行拆分为命名空间,类,方法文件和行号?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
C#堆栈跟踪采取以下形式:
at Foo.Core.Test.FinalMethod(Doh doh) in C:\Projects\src\Core.Tests\Test.cs:line 21
   at Foo.Core.Test.AnotherMethod(Bar bar)
   at Foo.Core.Test.AMethod() in C:\Projects\src\Core.Tests\Test.cs:line 6
   at Foo.Core.Test.<>c__DisplayClass7.<SomeAnonDelegate>b__6(Object _) in C:\Projects\src\Core.Tests\Test.cs:line 35

如何从每一行检索命名空间,类,方法,文件和行号?

>是否有任何现有的课程?
>如果不是最好的方法呢?
>正则表达式我如何贪婪地匹配命名空间,但离开类和方法
>自定义解析器

会欣赏一些想法和投入.

解决方法

如果您从 StackTrace获得此数据,则可以通过 GetFrame循环访问 StackFrames,并调用 GetMethod,GetFileNameGetFileLineNumber.可以从方法中检索命名空间和类.

编辑
响应第一条评论(不幸的是我们从Exception.StackTrace获取痕迹),您可以调用StackTrace(Exception)构造函数.

编辑
我应该链接到这个构造函数StackTrace(Exception,bool).

猜你在找的C#相关文章