C#语法糖之 session操作类 asp.net
2015-06-09 21:31
651 查看
用法:
代码:
//声名一个数据集合 var listString = new List<string>() { "a", "b", "c" }; //session key string key = "sekey"; //获取实例 var sessionManager = SessionManager<List<string>>.GetInstance(); //添加session sessionManager.Add(key, listString); //add有其它重载 上面是最基本的 //获取 List<string> sessionList = sessionManager[key]; //其它方法 sessionManager.ContainsKey(key); sessionManager.Remove(key);//删除 sessionManager.RemoveAll(c => c.Contains("sales_"));//删除key包含sales_的session sessionManager.GetAllKey();//获取所有key
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; namespace SyntacticSugar { /// <summary> /// ** 描述:session操作类 /// ** 创始时间:2015-6-9 /// ** 修改时间:- /// ** 作者:sunkaixuan /// ** 使用说明: /// </summary> /// <typeparam name="K">键</typeparam> /// <typeparam name="V">值</typeparam> public class SessionManager<V> : IHttpStorageObject<V> { private static readonly object _instancelock = new object(); private static SessionManager<V> _instance = null; public static SessionManager<V> GetInstance() { if (_instance == null) { lock (_instancelock) { if (_instance == null) { _instance = new SessionManager<V>(); } } } return _instance; } public override void Add(string key, V value) { context.Session.Add(key, value); } public override bool ContainsKey(string key) { return context.Session[key] != null; } public override V Get(string key) { return (V)context.Session[key]; } public override IEnumerable<string> GetAllKey() { foreach (var key in context.Session.Keys) { yield return key.ToString(); } } public override void Remove(string key) { context.Session[key] = null; context.Session.Remove(key); } public override void RemoveAll() { foreach (var key in GetAllKey()) { Remove(key); } } public override void RemoveAll(Func<string, bool> removeExpression) { var allKeyList = GetAllKey().ToList(); var removeKeyList = allKeyList.Where(removeExpression).ToList(); foreach (var key in removeKeyList) { Remove(key); } } public override V this[string key] { get { return (V)context.Session[key]; } } } }
using System; namespace SyntacticSugar { public abstract class IHttpStorageObject<V> { public int Minutes = 60; public int Hour = 60 * 60; public int Day = 60 * 60 * 24; public System.Web.HttpContext context = System.Web.HttpContext.Current; public abstract void Add(string key, V value); public abstract bool ContainsKey(string key); public abstract V Get(string key); public abstract global::System.Collections.Generic.IEnumerable<string> GetAllKey(); public abstract void Remove(string key); public abstract void RemoveAll(); public abstract void RemoveAll(Func<string, bool> removeExpression); public abstract V this[string key] { get; } } }
相关文章推荐
- Aspose.Word 操作word表格的行 插入行 添加行
- Aspose.Word 操作word表格的行 插入行 添加行
- ASP.NET中使用Excel导入数据到数据库
- Aspose.Words.Tables.Row类操作word表格行
- Aspose.Words.Tables.Row类操作word表格行
- asp.net 使用UrlRewritingNet.UrlRewriter组件URL重写,伪静态详解
- ASP.NET forms凭据设置和跳转的几种方法
- Asp.net mvc5开源项目"超级冷笑话"
- Visual Studio C#的winform/webform/asp.net控件命名规范
- asp.net页面去调用通过SSL加密的webservice报错
- asp.net mvc4 简单使用Autofac依赖注入小结
- A Reusable Aspect for Memory Allocation Checking
- ASP.NET 实现伪静态网页方法
- ASP.NET之控件
- asp.net MVC4.0中几种控制器的区别
- Asp.Net MVC 路由 - Asp.Net 编程 - 张子阳
- 使用ASP.NET上传图片汇总
- 在asp.net一般应用程序中使用session
- 【ASP.NET 基础】图片上传和显示
- C#语法糖之 cache操作类 asp.net