ASP.NET会话能否记住对象?

ASP.NET会话能否记住对象?,asp.net,session,session-variables,Asp.net,Session,Session Variables,我从一个例子开始提问。我想这会更简单 我想做的是将请求_1从我的Android设备发送到asp页面,该页面正在等待JSON请求,例如{“Year”:2012}。页面获取此json字符串,并将其保存到对象(例如arraylist)。 一分钟后,我将请求_2发送到同一个ASP页面,其中包含以下数据:{“Command”,“WhatIsCurrentYear”},然后我希望得到响应:{“Year”,2012}(应该仍然存储在arraylist中) 是否有机会执行此操作?会话有一个属性Session.T

我从一个例子开始提问。我想这会更简单

我想做的是将请求_1从我的Android设备发送到asp页面,该页面正在等待JSON请求,例如{“Year”:2012}。页面获取此json字符串,并将其保存到对象(例如arraylist)。 一分钟后,我将请求_2发送到同一个ASP页面,其中包含以下数据:{“Command”,“WhatIsCurrentYear”},然后我希望得到响应:{“Year”,2012}(应该仍然存储在arraylist中)


是否有机会执行此操作?

会话有一个属性Session.TimeOut。会话在时间过期后过期。默认情况下,asp.net会话超时时间为20分钟。如果用户关闭浏览器,则会话超时时间也为20分钟。如果浏览器会话的模式为InProc(Cookies或不带Cookies),则会话也将过期。在InProc会话提供程序中,IIS可以随时(在非活动期间,达到某些CPU/内存阈值,…)回收应用程序池,而不会发出警告,从而使该会话的内容无效。
变量在每次回发时都会初始化,因此,如果以前将数据保存在数组列表对象中,则会丢失数据。要在回发过程中保存数据,可以使用ViewState。

我创建了一个用于访问会话的类

public static IPerson User
{
    get
    {
        if (HttpContext.Current.Session == null || HttpContext.Current.Session[UserConstant] == null)
            return new Student();
        return (IPerson)HttpContext.Current.Session[UserConstant];
    }
    set
    {
        HttpContext.Current.Session[UserConstant] = value;
    }
}

你可以用你想要的任何对象替换IPerson。

这听起来像是ASP.NET会话变量的定义,这是一个有点错误的问题。我对它做了一点修改:)我希望会话中的对象被记住:)@Augis:重点仍然存在。Session对象的全部要点是它在整个会话中保持不变…@DanPichelman:这听起来像是一个答案,而不是一个注释另外,请不要忘记,如果您使用InProc会话提供程序(将会话数据存储在内存中,这是默认的提供程序),IIS可以随时(在非活动期间,达到某些CPU/内存阈值,…)回收应用程序池,而不会警告您使此会话的内容无效。