发生了类型为'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'的首次机会异常

7
当在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";
            }
        }
    }
1个回答

20

JSON.Net 的创作者本人在这里回答,保证它只是个小问题,并且异常是按设计意图发生的。更多关于 RuntimeBinderException 的信息已经在StackOverflow上有了答案。

顺便说一下,如果你想要禁用这些警告,因为它们让你感到不舒服。

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


1
谢谢,我不会再担心了。我很惊讶StackOverflow没有将之前的答案列入可能的答案列表中。也许当我提供异常的完整名称时太具体了。 - Nikki Locke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接