Meh*_*ari 66
是的,您可以存储任何对象(我假设您使用的是具有默认设置的ASP.NET,这是进程内会话状态):
Session["test"] = myList;
Run Code Online (Sandbox Code Playgroud)
您应该将其强制转换为原始类型以供使用:
var list = (List<int>)Session["test"];
// list.Add(something);
Run Code Online (Sandbox Code Playgroud)
正如Richard指出的那样,如果您正在使用其他需要对象可序列化的会话状态模式(例如SQL Server),则应格外小心.
Pau*_*ean 20
是.你在为哪个平台写作?ASP.NET C#?
List<string> myList = new List<string>();
Session["var"] = myList;
Run Code Online (Sandbox Code Playgroud)
然后,检索:
myList = (List<string>)Session["var"];
Run Code Online (Sandbox Code Playgroud)
小智 5
我发现在页面范围之外的类文件中,上面的方式(我一直使用的)不起作用.
我在这个"上下文"中找到了一个解决方法,如下所示:
HttpContext.Current.Session.Add("currentUser", appUser);
Run Code Online (Sandbox Code Playgroud)
和
(AppUser) HttpContext.Current.Session["currentUser"]
Run Code Online (Sandbox Code Playgroud)
否则,当我将对象指向会话对象时,编译器期望一个字符串.