Exception.StackTrace 行号仅在调试器中显示,在读取其值时丢失

问题描述

我正在调试一个 WCF 项目(调试常量打开)并遇到了这个问题。我想在捕获时记录异常的 StackTrace 中的行号

try
{
    // ...
}
catch (Exception ex)
{
     string message = "Error: " + ex.StackTrace;
     // ...
}

我在 message 变量中获得的所有内容仅包含调用堆栈和方法名称。奇怪的是,如果我在调试器中展开 ex 变量,我可以看到带有行号的完整堆栈跟踪。只有直接使用属性才会得到截断的消息。

看截图。在监视窗口中,我添加了 2 个变量:ex 扩展时和 ex.StackTrace。甚至在监视窗口中也可以看到,直接访问时行号被剥离了。

那么是什么导致了这种行为?

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)