防止调试器在编译的LambdaExpression中停止异常

Ali*_*eza 8 c# debugging attributes visual-studio-2010 visual-studio

在我的程序中,我创建动态lambda表达式,然后将它们编译为委托.然后调用这些代理以从我的实体中提取信息.一些代表可能会抛出异常,我已经抓住了我调用代理的异常.我已启用"仅启用我的代码"并将[DebuggerNonUserCode]属性应用于创建LambdaExpression的位置,已编译的位置以及调用的位置.但是因为在Debug> Exceptions> Common Language Runtime Exceptions中,选中了Thrown复选框,visual studio总是停止错误,这对开发人员来说是一个很大的不便.

似乎[DebuggerNonUserCode]应该以某种方式应用于已编译的委托,但是如何?还是其他任何建议?

谢谢.

Gre*_*Ros 1

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

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

  • 嗯……我可能愿意采取那些可怕的步骤。有指向正确资源的指针吗?谢谢 (2认同)