我将linq list()/ collection结果保存为HttpContext.Current.Cache
作为对象,当我尝试将对象作为集合时,它为null,尽管HttpContext.Current.Cache.Get("data")
不为空:
ICollection<ActionEntity> actions = HttpContext.Current.Cache.Get("data") as ICollection<ActionEntity>;
答案 0 :(得分:0)
尝试打印数据类型。类似的东西:
System.Diagnostics.Debug.WriteLine(HttpContext.Current.Cache.Get("data").GetType().ToString()).
然后使用该数据类型进行投射。
您可以在Windows输出中看到结果 - &gt;调试。
修改强>
您无法转换AnonymousType。你可以做的是创建一个具有相同AnonymousType结构的对象,然后使用它。 例如,你有一个
new { List = new List<ActionEntity>() }
您可以像这样创建一个ListOfList<T>
类:
class ListOfList<T> { public List<T> List { get; set; } }
而不是使用AnonymousType,请使用:
new ListOfList<ActionEntity> { List = new List<ActionEntity>() }
然后你可以使用这个投射:
ListOfList<ActionEntity> data = HttpContext.Current.Cache.Get("data") as ListOfList<ActionEntity>;