我使用此代码返回一个对象列表,以便将它们存储在out-proc会话中:
Session["Data"] = DataContext.ObjectSet.Select(rec => new { Title = rec.Title , Count = rec.Count });
但是如你所知,我们不能在一个out-proc会话中存储不可序列化的类,有没有办法做到这一点? 请不要说我定义它的类,我正在寻找C#中的后门或者这样做的技巧
由于
答案 0 :(得分:0)
一种简单的方法是转换为数组对象
Session["Data"] = DataContext.ObjectSet
.Select(rec => new { Title = rec.Title , Count = rec.Count })
.ToArray();
您甚至可以将其转换为List oibject并将其序列化为您自己的对象
var data = DataContext.ObjectSet
.Select(rec => new SessionData() { Title = rec.Title , Count = rec.Count })
.ToList();
System.Web.Script.Serialization.JavaScriptSerializer oSerializer =
new System.Web.Script.Serialization.JavaScriptSerializer();
Session["Data"] = oSerializer.Serialize(data);
并使用
public class SessionData {
public string Title { get; set; }
public int Count { get; set; }
}
但是在会议中持有这样的对象......你可能会做错事吗?想象一下,在给定的时间内,您将拥有该列表的1000条记录......