【问题标题】:RuntimeBinderException when using dynamic object使用动态对象时出现 RuntimeBinderException
【发布时间】:2013-02-07 14:54:29
【问题描述】:

我觉得我在这里遗漏了一些明显的东西,所以请随时向我指出。

我有一个简单的单元测试来说明我的问题:

        [Test]
    public void DynamicTest()
    {
        dynamic myDynamic = new ExpandoObject();
        myDynamic.Prop = "abc";
        Assert.AreEqual("abc",myDynamic.Prop);
    }

当我执行单元测试时,它通过了。到目前为止一切顺利。

如果我选择调试单元测试(在调试 -> VS 中的异常下勾选所有 CLR 异常),我会看到 RuntimeBinderException:

这不是致命的,所以我可以按 F5 并继续,测试仍然通过,但这似乎是错误的。我在这里做错了吗?在我们的应用程序的一般使用过程中出现这些异常非常烦人。还是我应该取消选中 RuntimeBinderException 框并忽略它?

【问题讨论】:

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


    【解决方案1】:

    当 CLR 异常被抛出(即第一次机会)而不是未处理(即第二次机会)时,您将调试器设置为中断。显然,您可以取消勾选它并且它会消失,但如果您只想从您的代码中看到第一次机会异常,那么您可以启用Just My Code option。启用“仅我的代码”后,调试器只会在第一次机会异常通过您的代码时中断。这些选项不会影响您的应用程序对用户的行为,只会影响调试器在附加时所做的事情。

    【讨论】:

    • 谢谢,Just My Code 完成了这项工作。仍然有点震惊,这些例外是设计使然,但那是另一个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多