【问题标题】:Suppress RuntimeBinderException messages from dynamic types抑制来自动态类型的 RuntimeBinderException 消息
【发布时间】:2012-07-11 18:54:59
【问题描述】:

我最近开始使用私有 NuGet 服务器来管理我组织的内部库。这意味着为了进入库中我们自己的代码,我需要在调试选项中禁用“仅启用我的代码”,因为我们不再直接引用项目。这是一个非常庞大的 MVC 项目,它使用动态类型和 ExpandoObjects 以及 ViewBag。每次使用动态类型时,我都会得到两个 RuntimeBinderExceptions ......这很多。从我读过的内容来看,这似乎是正常行为。正常可能有用,但没用。

我的第一个想法是在 Debug-> Exceptions 对话框中禁用此特定异常。在那里找不到例外。我想不出任何方法可以跳出直接引用的项目,而不会让自己面对这些例外。 (以及我不想听到的所有其他低级框架异常,但这是迄今为止最大的违规者)。

解决这个问题的最佳方法是什么?

编辑:这就是问题所在。如何在禁用“仅启用我的代码”的情况下停止这种情况?

【问题讨论】:

    标签: c# .net visual-studio-2010 debugging


    【解决方案1】:

    您可以添加额外的“异常”名称(存在于您自己的代码或其他库中)...只要您知道异常的完全限定类型名称。

    使用调试器管理异常
    https://msdn.microsoft.com/en-us/library/x85tt0dd.aspx

    在 Visual Studio 2010 中

    通过Debug | Exceptions... 对话框。

    • 使用Add 按钮在Common Language Runtime Exceptions 组下添加一个新例外,并将其命名为Microsoft.CSharp.RuntimeBinder.RuntimeBinderException

    • 然后确保ThrownUser-Handled 未被勾选 - 从而导致第一次机会异常被忽略,而不是被调试器捕获。

    在 Visual Studio 2017 中

    通过Debug | Windows | Exception Settings... 面板

    • 使用 + 添加新的异常名称

    • 确保未勾选

    【讨论】:

    • 您好 - 感谢您的回复!我不关心输出窗口中记录的异常。当抛出这些异常时,我需要阻止调试器本身停止代码执行。见编辑。 (来自主项目!)
    • 我不认为这是一个合理的解决方案 - 它需要大量的代码修改,并且我可能无法或不想重新编译某些库。这意味着如果不使用断点,我将无法再单步执行代码,这也是我首先要这样做的重要原因。
    • 天哪。这样可行。我觉得好像一个很大的重量被解除了。
    • 不幸的是,这些消息仍然显示在调试输出中。这很烦人,因为红色消息飞过,我必须去寻找它们是否是我需要担心的事情。
    • 您可以转到“工具|选项”然后“调试|输出窗口”....尝试在“常规输出设置”中将“异常消息”设置为“关闭”...。或者, 在“调试”输出窗口中右键单击以显示菜单....并取消勾选异常消息
    猜你喜欢
    • 2015-08-10
    • 1970-01-01
    • 2021-06-29
    • 2018-01-28
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    相关资源
    最近更新 更多