使用动态对象时的RuntimeBinderException

时间:2013-02-22 03:56:58

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

我觉得我错过了一些明显的东西,所以请随意向我指出。

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

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

当我执行单元测试时,它会通过。到目前为止一切都很好。

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

enter image description here

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

1 个答案:

答案 0 :(得分:10)

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