栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从ASP.NET中的任何类访问会话变量?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从ASP.NET中的任何类访问会话变量?

(为了完整性起见,已更新)
您可以使用

Session["loginId"]
任何类从任何页面或控件访问会话变量(例如,从类库内部),使用
System.Web.HttpContext.Current.Session["loginId"].

但是请继续阅读我的原始答案…


我总是在ASP.NET会话周围使用包装器类,以简化对会话变量的访问:

public class MySession{    // private constructor    private MySession()    {      Property1 = "default value";    }    // Gets the current session.    public static MySession Current    {      get      {        MySession session =          (MySession)HttpContext.Current.Session["__MySession__"];        if (session == null)        {          session = new MySession();          HttpContext.Current.Session["__MySession__"] = session;        }        return session;      }    }    // **** add your session properties here, e.g like this:    public string Property1 { get; set; }    public DateTime MyDate { get; set; }    public int LoginId { get; set; }}

此类在ASP.NET会话中存储其自身的一个实例,并允许您从任何类中以类型安全的方式访问会话属性,例如:

int loginId = MySession.Current.LoginId;string property1 = MySession.Current.Property1;MySession.Current.Property1 = newValue;DateTime myDate = MySession.Current.MyDate;MySession.Current.MyDate = DateTime.Now;

这种方法有几个优点:

  • 它使您免于大量类型转换
  • 您不必在整个应用程序中使用硬编码的会话密钥(例如Session [“ loginId”]
  • 您可以通过在MySession的属性上添加XML文档注释来记录会话项
  • 您可以使用默认值初始化会话变量(例如,确保它们不为空)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/416921.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号