当在Newtonsoft JObjects上使用dynamic时,我的调试输出中会出现大量的Microsoft.CSharp.RuntimeBinder.RuntimeBinderException异常。虽然这些异常必须在Microsoft.CSharp.dll的某个地方被捕获,但它们的发生让我感到有点不舒服。除了放弃dynamic之外,我还能做什么来阻止它们的发生吗?以下是一个简短的测试程序,它输出其中一个异常:
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";
}
}
}