我创建了一个通用函数,它可以检索JSON并解析它:
public IList<Object> RetrieveView(string result)
{
JavaScriptSerializer ser = new JavaScriptSerializer();
IList<Object> values = ser.Deserialize< IList<Object> >(result);
return values;
}
我有很多使用它的类的问题。 例如,当我尝试使用它时:
IList<Receipt> receipts = (IList<Receipt>)RetrieveView(result);
我得到InvalidCastException
Unable to cast object of type 'System.Collections.Generic.List[System.Object]' to type 'System.Collections.Generic.IList[Receipt]'.
无论如何要保持我的功能Generic并能够将它投射到我的所有类/模型中?
答案 0 :(得分:6)
让你的功能变得通用:
public IList<T> RetrieveView<T>(string result)
{
JavaScriptSerializer ser = new JavaScriptSerializer();
IList<T> values = ser.Deserialize< IList<T> >(result);
return values;
}
答案 1 :(得分:4)
如果将对象反序列化为Receipt,则可以使用Enumerable扩展。
IList<Receipt> receipts = RetrieveView(result).Cast<Receipt>().ToList();