C# DynamicJsonObject与expandooobject?

C# DynamicJsonObject与expandooobject?,c#,.net,json,dynamic,C#,.net,Json,Dynamic,除了一些基本的用法差异外,ExpandooObject和DynamicJsonObject的行为似乎相似,并且可能或多或少可以互换使用,从而解释了上述差异。例如,我发现这一要点以ExpandooObject开始,然后将其转换为DynamicJsonObject,以便于将其转换为字符串: dynamic expando = new ExpandoObject(); expando.Value = 10; expando.Product = "Apples"; var dictionaryResu

除了一些基本的用法差异外,ExpandooObject和DynamicJsonObject的行为似乎相似,并且可能或多或少可以互换使用,从而解释了上述差异。例如,我发现这一要点以ExpandooObject开始,然后将其转换为DynamicJsonObject,以便于将其转换为字符串:

dynamic expando = new ExpandoObject();
expando.Value = 10;
expando.Product = "Apples";

var dictionaryResult = System.Web.Helpers.Json.Encode(new DynamicJsonObject(expando));
但是,我似乎能够通过从DynamicJsonObject开始实现相同的结果:

在这两种情况下,我最终得到一个包含所需值的字符串: {价值:10,产品:橙子}

当然,我意识到这个场景中的相似之处仅仅表明了两个不同工具的功能重叠,在某些情况下,其中一个工具比另一个工具更有用

所以这里是我的场景——我使用它作为一种方便灵活的方式,在通过RESTAPI交付之前构建一个复杂的、有点任意的JSON字符串。分配给JSON对象的实际属性必须根据特定条件而变化,因此使用动态对象非常方便

考虑到这个用例,DynamicJsonObject似乎是合适的选择,即使只是因为它的名字


有人能帮我弄清楚这两者之间真正的根本区别,以及为什么我可能会使用一个而不是另一个吗?

事实上答案就在这里。。事实上,它不是。这个问题确实将ExpandoObject与DynamicObject进行了比较,DynamicJsonObject就是从中派生出来的,但对于初学者来说,答案中对ExpandoObject的描述似乎同样适用于DynamicJsonObject。我想我可能弄错了,我将重新检查我自己。
dynamic jsonobj = new DynamicJsonObject(new Dictionary<string, object>());

jsonObj.Value = 10;
jsonObj.Product = "Oranges";

var System.Web.Helpers.Json.Encode(jsonObj);