Visual Studio 在系统代码而不是用户代码中引发异常

问题描述 投票:0回答:1

我正在 .Net 8.0 中开发一个 C# WPF 项目,由于某种原因,我可以访问所有系统程序集的完整源代码。在大多数 PC 上,比如我的工作计算机,查看像

Console
这样的类的定义只能显示公共方法和 xml 注释,而我的家用 PC 可以访问完整的源代码,包括私有方法的内容(就像我可以看到
 private static void HandlePosixSignal
Console
方法背后的代码)。

我认为这就是每当我遇到异常时,它都不会抛出到我自己的代码中,而是抛出到一些系统类中的原因。为了演示我的意思,我复制了 MSDN 异常页面的示例:

  string something = "aa";
  string.Format("{1}", something);

通常这会在

string.Format
调用中引发异常,就像您在 Microsoft 的屏幕截图中看到的那样:

就我而言 - 我认为这是由于可以访问完整的源代码 - 错误是在

System.Windows.Markup.XamlReader
处的
internal static void RewrapException
中引发的,正如您在这里看到的:

我不知道如何访问反编译的源代码,也不知道它是否是默认的 .Net 8 功能,但这对于调试来说非常烦人,我想禁用它。有什么想法可以禁用它吗?

c# wpf visual-studio .net-8.0
1个回答
0
投票

这是由于 Visual Studio 中的调试选项

Just my code
所致,您需要检查该选项。

启用后,这会指示 Visual Studio 在调试时仅加载您创建的程序集,而不加载

System.*
或任何其他外部程序集。

要启用它,您可以使用功能搜索(快捷方式

Ctrl + Q
)并搜索
Just my code
,您应该会看到一个必须选中的复选框。然后重新启动调试过程,您应该会看到异常在您期望的地方抛出。

© www.soinside.com 2019 - 2024. All rights reserved.