巴布鱼——软件工程师的家园

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1418|回复: 0

[C#] c#类库中使用Session

[复制链接]

35

主题

36

帖子

306

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
306
QQ
发表于 2015-5-5 20:30:52 | 显示全部楼层 |阅读模式
网站开发中,为了保存用户的信息,有时候需要使用session。如果我们在aspx页面中使用Session,只需要Session["key"]=value就可以,获取时使用int userid=Session["userid"],但是在赋值时,我们可能需要判断Session是否为空,是否能转换成int类型。如果只在一处使用Session,那么我们可以直接在aspx页面中操作,修改也只需修改一处。

但在操作Session时,可能会在多个页面,如果修改Session,可能需要修改多个页面,这样会非常的繁琐。解决的办法主要有两个,一个是基类页面,添加一个基类页面,页面继承自System.Web.UI.Page,在基类页面中处理Session。其它的涉及Session操作的继承自基类页面。二是使用类,如果在asp.net项目中使用类,只需要引用
  1. using System.Web;
  2. using System.Web.SessionState;
复制代码
然后定义
  1. private static HttpSessionState _session = HttpContext.Current.Session;
复制代码
就可以通过_session操作Session了。

本文主要介绍第二种方式,而且是使用类库操作Session的方法。
1.新建一个类库
2.添加引用,解决方案资源管理器中,右键“引用”-》“添加引用”-》.net-》选择“System.Web”-》点击“确定”
3.添加一个类,在类中引用
  1. using System.Web;
  2. using System.Web.SessionState;
复制代码
4.操作Session,主要涉及添加,获取,清除。其它的如修改、删除也可添加。主要代码如下:
  1. private static HttpSessionState _session = HttpContext.Current.Session;
  2. public static void SetSession(string key,object value)
  3. {
  4.     _session[key] = value;
  5. }
  6. public static int GetSessionNumber(string key)
  7. {
  8.     int result = 0;
  9.     if(_session[key]!=null)
  10.     {
  11.         int.TryParse(_session[key].ToString(), out result);
  12.     }
  13.     return result;
  14. }
  15. public static string GetSessionString(string key)
  16. {
  17.     string result = "";
  18.     if(_session[key]!=null)
  19.     {
  20.         result = _session[key].ToString();
  21.     }
  22.     return result;
  23. }
  24. public static void Clear()
  25. {
  26.     _session.Clear();
  27. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|巴布鱼

GMT+8, 2019-10-14 04:59 , Processed in 0.101566 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表