C# 使用动态对象时的RuntimeBinderException

C# 使用动态对象时的RuntimeBinderException,c#,.net,visual-studio-2010,dynamic,C#,.net,Visual Studio 2010,Dynamic,我觉得我错过了一些明显的东西,所以请随时向我指出 我有一个简单的单元测试来说明我的问题: [Test] public void DynamicTest() { dynamic myDynamic = new ExpandoObject(); myDynamic.Prop = "abc"; Assert.AreEqual("abc",myDynamic.Prop); } 当我执行单元测试时,它通过了。到目前为

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

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

        [Test]
    public void DynamicTest()
    {
        dynamic myDynamic = new ExpandoObject();
        myDynamic.Prop = "abc";
        Assert.AreEqual("abc",myDynamic.Prop);
    }
当我执行单元测试时,它通过了。到目前为止还不错

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


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

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

谢谢,只是我的代码完成了这项工作。这些例外情况都是设计出来的,这仍然有点令人震惊,但这是另一个问题。