C# 转换类型';System.Dynamic.DynamicObject到System.Collections.IEnumerable

C# 转换类型';System.Dynamic.DynamicObject到System.Collections.IEnumerable,c#,javascriptserializer,dynamicobject,C#,Javascriptserializer,Dynamicobject,我正在成功地使用MVC3中的JavaScriptSerializer将json字符串反序列化为动态对象。我搞不懂的是如何把它转换成我能列举出来的东西。下面的foreach行代码是我的最新尝试,但它的错误是:“无法将type‘System.Dynamic.DynamicObject’隐式转换为‘System.Collections.IEnumerable’。如何转换或强制转换,以便在字典中进行迭代 public dynamic GetEntities(string entityName, str

我正在成功地使用MVC3中的JavaScriptSerializer将json字符串反序列化为动态对象。我搞不懂的是如何把它转换成我能列举出来的东西。下面的foreach行代码是我的最新尝试,但它的错误是:“无法将type‘System.Dynamic.DynamicObject’隐式转换为‘System.Collections.IEnumerable’。如何转换或强制转换,以便在字典中进行迭代

 public dynamic GetEntities(string entityName, string entityField)
        {
           var serializer = new JavaScriptSerializer();
            serializer.RegisterConverters(new[] { new                        MyProject.Extensions.JsonExtension.DynamicJsonConverter() });
           dynamic data = serializer.Deserialize(json, typeof(object));
           return data;
        }


 foreach (var author in GetEntities("author", "lastname"))

考虑到“GetEntities”的示例用法,请尝试将其返回类型更改为
IEnumerable
(或者,尽管强烈不建议,至少更改为
IEnumerable
)。您需要在方法中执行一些筛选,以根据“entityName”输入参数提取适当的实体。尽管不清楚另一个输入参数(“entityField”)的预期用途。

DynamicObject是从IDictionary继承的,因此您可以将其强制转换为IDictionary

public IDictionary<string, object> GetEntities(string entityName, string entityField)
    {
       var serializer = new JavaScriptSerializer();
        serializer.RegisterConverters(new[] { new MyProject.Extensions.JsonExtension.DynamicJsonConverter() });
       dynamic data = serializer.Deserialize(json, typeof(object));
       return data as IDictionary<string, object>;
    }




foreach (var author in GetEntities("author", "lastname"))
公共IDictionary GetEntities(string entityName,string entityField) { var serializer=新的JavaScriptSerializer(); serializer.RegisterConverters(新[]{new MyProject.Extensions.JsonExtension.DynamicJsonConverter()}); 动态数据=序列化程序。反序列化(json,typeof(object)); 以IDictionary返回数据; } foreach(GetEntities中的var author(“author”、“lastname”))
先将其转换为IDictionary。请发布json的布局好吗?