Visual Studio - 在 .NET 中调试调用的函数



我使用Reflection(Method.Invoke)在.NET中调用函数。如果此方法中发生错误并引发异常,调试器不会显示实际代码,而是在 Invoke() 调用时停止。我可以从 InnerException 中检索异常信息,但与具有可用调用堆栈等的常规调试相比,这非常不方便。使用 Method.Invoke 调用的方法是否可以像常规函数调用一样进行调试?

你喜欢点击的是"Just My Code"功能。 默认情况下,调试器将调试限制为被视为由开发人员创作的代码。 这减少了调试 WPF 或 WinForms 启动时存在的大量噪音。

为了使异常助手之类的项适用于所有代码,您应该禁用"仅我的代码"。

  • 工具 ->选项
  • 调试器
  • 取消选中"仅启用我的代码调试"

如果所有其他方法都失败了,你也可以把这样的东西放到被调用的方法中:

#if DEBUG
    System.Diagnostics.Debugger.Break();
#endif

这基本上会"以编程方式"导致那里的断点。

你也可以通过做以下事情让它稍微好一点:

  if(Debugger.IsAttached)
    Debugger.Break();

这样,只有当您在调试器中实际运行它时,它才会中断。


编辑:

第二个想法,如果你有代码来编辑它,那么你可能可以通过VisualStudio在那里粘贴一个常规断点。我想我的答案没有意义...对不起:)

我的解决方法是在Tick()中创建计时器并调用方法:

GUI 代码 -> 通过 Method.Invoke 调用函数 -> 函数设置计时器 -> 在 Tick 中有函数体

不幸的是,它不是很漂亮(在某些情况下不适合)

相关内容

  • 没有找到相关文章

最新更新