在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";
}
}
}
答案 0 :(得分:12)
JSON.Net的创建者自己发表了here
确保它是次要的,例外是设计的。有关 RuntimeBinderException 的更多信息已在StackOverflow
上得到解答顺便说一句,如果您想禁用这些警告,那么它们会让您感到不舒服。
在Visual Studio中,单击工具 - > 选项,然后选择调试并选中启用我的代码框。