在我的程序中,我创建了动态 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/