转换类型'System.Dynamic.DynamicObject到System.Collections.IEnumerable [英] Convert type 'System.Dynamic.DynamicObject to System.Collections.IEnumerable
问题描述
我成功地使用的JavaScriptSerializer在MVC3中动态对象反序列化一个JSON字符串。我想不通的是如何将它转换的东西,我可以枚举。下面的代码行的foreach是我最新的attemt但有错误:无法隐式转换类型'System.Dynamic.DynamicObject'到'System.Collections.IEnumerable我怎么能转换或投,这样我可以通过字典遍历?
公共动态GetEntities(字符串的entityName,串entityField)
{
无功序列化=新的JavaScriptSerializer( );
serializer.RegisterConverters(新[] {新MyProject.Extensions.JsonExtension.DynamicJsonConverter()});
动态数据= serializer.Deserialize(JSON的typeof(对象));
返回数据;
}
的foreach(在GetEntities VAR作者(作家,姓氏))
DynamicObject从IDictionary的继承,所以你可以将它转换为IDictionary的。
公开的IDictionary<字符串对象> GetEntities(字符串的entityName,串entityField)
{
无功序列化=新的JavaScriptSerializer();
serializer.RegisterConverters(新[] {新MyProject.Extensions.JsonExtension.DynamicJsonConverter()});
动态数据= serializer.Deserialize(JSON的typeof(对象));
返回数据的IDictionary<字符串对象> ;;
}
的foreach(在GetEntities VAR作者(作家,姓氏))
I'm successfully using the JavaScriptSerializer in MVC3 to de-serialize a json string in to a dynamic object. What I can't figure out is how to cast it to something I can enumerate over. The foreach line of code below is my latest attemt but it errors with: "Cannot implicitly convert type 'System.Dynamic.DynamicObject' to 'System.Collections.IEnumerable'. How can I convert or cast so that I can iterate through the dictionary?
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"))
DynamicObject is inherited from IDictionary, so you can cast it to 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"))
这篇关于转换类型'System.Dynamic.DynamicObject到System.Collections.IEnumerable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!