我目前正在使用这个丑陋的代码向JObject添加一堆键/值对(保存在Dictionairy中)。它并没有将他们添加为孩子,而是将他们作为兄弟姐妹。代码可以工作,但如果将它们作为子节点添加,则会更干净。(动态对象e,持有JObject)
public void trigger(dynamic e ,Pairs extras)
{
if (Post != null)
{
foreach (KeyValuePair<string, object> entry in extras)
{
Newtonsoft.Json.Linq.JValue val = new Newtonsoft.Json.Linq.JValue(entry.Value);
e.Add(entry.Key, val);
}
Post(this, e);
}
}
对于我的特殊需求,(通过SignalR发送动态对象,SignalR使用JSON.NET进行序列化)。我找到了一个更简单的解决方案。
我的问题是,我有一个dymanic密封类,JSON.NET正在为它创建一个JTOKEN,然后我试图添加更多的数据。当我做e.Add(字符串,JTOKEN)时,它正在创建第二个子树。那太难看了。
我的解决方案现在可以在以下位置找到:
可以将动态对象转换为ExpandoObject(c#)吗