发生了“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException”类型的第一次机会异常

时间:2015-05-07 15:02:07

标签: c# exception dynamic

在Newtonsoft JObjects上使用dynamic时,我的调试输出中得到了很多Microsoft.CSharp.RuntimeBinder.RuntimeBinderException。虽然异常必须被困在Microsoft.CSharp.dll中的某个地方,但它让我感到非常不舒服。有什么办法可以阻止他们(除了完全放弃动态)吗?

这是一个简短的测试程序,它输出以下一个例外:

    using System;
    using Newtonsoft.Json.Linq;

    namespace DynamicTest {
        class Program {
            static void Main(string[] args) {
                JObject j = new JObject();
                j["DocumentName"] = "Name";
                dynamic d = j;
                d.DocumentName = "Changed";
            }
        }
    }

1 个答案:

答案 0 :(得分:12)

JSON.Net的创建者自己发表了here

确保它是次要的,例外是设计的。有关 RuntimeBinderException 的更多信息已在StackOverflow

上得到解答

顺便说一句,如果您想禁用这些警告,那么它们会让您感到不舒服。

在Visual Studio中,单击工具 - > 选项,然后选择调试并选中启用我的代码框。