c# - 防止调试器在已编译的 LambdaExpression 中出现异常时停止

标签 c# visual-studio-2010 visual-studio debugging attributes

在我的程序中,我创建了动态 lambda 表达式,然后将它们编译为委托(delegate)。然后调用这些委托(delegate)从我的实体中提取信息。 一些代表可能会抛出异常,我在调用代表时捕获了异常。我已启用“仅启用我的代码”并将 [DebuggerNonUserCode] 属性应用于创建 LambdaExpression 的位置、编译位置和调用位置。但是因为在 Debug>Exceptions>Common Language Runtime Exceptions 中勾选了 Thrown 复选框,visual studio 总是因为错误而停止,这给开发人员带来了很大的不便。

似乎 [DebuggerNonUserCode] 应该以某种方式应用于已编译的委托(delegate),但是如何呢?或者有什么建议?

谢谢。

最佳答案

据我所知,您不能将属性应用于使用表达式生成的匿名方法,除了动态类型生成可能会有一些可怕的困惑。

但是,一个可能的建议是转到 Debug > Exceptions 中的异常菜单,然后选择您要具体中断的异常。如果您的表达式倾向于抛出特定类型的异常,您可以只禁用对这些异常的中断。

关于c# - 防止调试器在已编译的 LambdaExpression 中出现异常时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11184074/

相关文章:

c++ - 未找到 UInt32x32To64 标识符

c# - 如何避免 If/Then 语句检查其 "IF"

c# - 类型和获取类型

c# - LoadControlState 没有被解雇

c# - C# 中的位域

c++ - 在调试器外部运行时发布构建更改行为

c# - 如何检查 cshtml 中的 null/empty 值

sql - 获取绑定(bind)在日历和组合框视频上的列表框

c++ - 有没有办法让 Visual Studio 停止缩进命名空间?

c# - 如何在使用 Visual Studio 发布应用程序时自动执行 gulp 任务?