6

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

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

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

当我执行单元测试时,它通过了。到现在为止还挺好。

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

在此处输入图像描述

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

4

1 回答 1

12

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

于 2013-02-22T04:13:21.907 回答