C# 在会话中操作列表
我有下面的代码,它看起来像预期的那样工作,但是我想确认是否有人做过类似的事情,并且我确实得到了我认为我得到的行为C# 在会话中操作列表,c#,asp.net,session,webforms,C#,Asp.net,Session,Webforms,我有下面的代码,它看起来像预期的那样工作,但是我想确认是否有人做过类似的事情,并且我确实得到了我认为我得到的行为 public class Foo { public int Id { get; set; } public string Bar { get; set; } } public class SomeWebFormsAspxCodeBehind : System.Web.UI.Page { public List<Foo> Foos {
public class Foo
{
public int Id { get; set; }
public string Bar { get; set; }
}
public class SomeWebFormsAspxCodeBehind : System.Web.UI.Page
{
public List<Foo> Foos
{
get
{
if (Session["MyFoos"] == null)
Session["MyFoos"] = new List<Foo>();
return (List<Foo>)Session["MyFoos"];
}
set
{
Session["MyFoos"] = value;
}
}
public void AddItemToListInSession(Foo foo)
{
this.Foos.Add(foo);
}
}
这段代码似乎正在运行,我正在将Foos绑定到dataview源代码并获得预期的结果
但是,在会话中存储列表时,我需要注意哪些问题?列表的所有功能如何。添加在列表处于会话状态时继续工作?这种行为是在列表或会话中抽象出来的,还是两者的结合?您不必担心,当您从会话对象获取它时,列表的功能与存储的列表完全相同。我不知道你为什么不这么想。@ClaudioRedi这看起来像是魔术。。。我天生不相信魔术:如果你的问题是在会话中存储对象然后检索它时会发生什么,那么我建议你开始阅读会话和序列化。根据所使用的会话存储,对象实际上是序列化和反序列化的。您可以调用的方法等功能不驻留在对象中,而是驻留在类型中。