我觉得我错过了一些明显的东西,所以请随意向我指出。
我有一个简单的单元测试来说明我的问题:
[Test]
public void DynamicTest()
{
dynamic myDynamic = new ExpandoObject();
myDynamic.Prop = "abc";
Assert.AreEqual("abc",myDynamic.Prop);
}
当我执行单元测试时,它会通过。到目前为止一切都很好。
如果我选择调试单元测试(在Debug下调用所有CLR异常 - > VS中的异常),我会看到一个RuntimeBinderException:
它不是致命的,所以我可以击中F5继续并且测试仍然通过,但这似乎是错误的。我在这里做错了吗?在我们的应用程序的一般使用过程中获取这些异常非常烦人。或者我应该取消RuntimeBinderException的框并忽略它?
答案 0 :(得分:10)
当CLR异常抛出(即第一次机会)而不是未处理(即第二次机会)时,您将调试器设置为中断。显然,你可以解开它并且它会消失,但如果你只想从代码中看到第一次机会异常,那么你可以启用Just My Code option。启用Just My Code后,如果调试器通过您的代码,它将只会在第一次机会异常时中断。这些选项不会影响应用程序对用户的行为,只会影响调试程序在连接时的行为。