http://www.codeproject.com/KB/aspnet/typedsessionstate.aspx
http://weblogs.asp.net/cstewart/archive/2008/01/09/strongly-typed-session-in-asp-net.aspx
http://geekswithblogs.net/dlussier/archive/2007/12/24/117961.aspx
如果我们想要将一个新的对象类型添加到会话中,或者作为方法或单独的包装器,我觉得我们需要在SessionManager中添加更多代码(如果我错了,请更正).我以为我们可以使用泛型
public static class SessionManager<T> where T:class { public void SetSession(string key,object objToStore) { HttpContext.Current.Session[key] = objToStore; } public T GetSession(string key) { return HttpContext.Current.Session[key] as T; } }
>是否有任何固有的优势
运用
SessionManager<类类别> .GetSession( “sessionString”)
而不是使用
HttpContext.Current.Session["sessionString"] as Classtype
>我还以为这会很好
有类似的东西
SessionManager [“sessionString”] = objToStoreInSession,
但发现静态类不能有索引器.有没有其他方法来实现这一目标?
>我的想法是创建一个SessionObject,它将存储Type和对象,然后使用密钥将此对象添加到Session(使用SessionManager).检索时,将所有对象强制转换为SessionObject,获取类型(比方说t)和Object(比如obj)并将obj转换为t并返回它.
公共类SessionObject
{
public type type {get; set;}
public Object obj {get; set;}
}
这不会起作用(因为返回签名将是相同的,但返回类型将是不同的).
是否有任何其他优雅的方式以更安全的方式在会话中保存/检索对象
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。