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

Nik*_*cke 4 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";
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

Ama*_*Dev 12

JSON.Net的创建者自己在这里解决了这个问题

确保它是次要的,例外是设计的.有关RuntimeBinderException的更多信息已在StackOverflow上得到解答

顺便说一句,如果你想禁用这些警告,他们会让你感到不舒服.

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