博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#语法糖之 session操作类 asp.net
阅读量:5078 次
发布时间:2019-06-12

本文共 3452 字,大约阅读时间需要 11 分钟。

用法:

//声名一个数据集合            var listString = new List
() { "a", "b", "c" }; //session key string key = "sekey"; //获取实例 var sessionManager = SessionManager
>.GetInstance(); //添加session sessionManager.Add(key, listString); //add有其它重载 上面是最基本的 //获取 List
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{    ///     /// ** 描述:session操作类    /// ** 创始时间:2015-6-9    /// ** 修改时间:-    /// ** 作者:sunkaixuan    /// ** 使用说明:    ///     /// 
///
public class SessionManager
: IHttpStorageObject
{ private static readonly object _instancelock = new object(); private static SessionManager
_instance = null; public static SessionManager
GetInstance() { if (_instance == null) { lock (_instancelock) { if (_instance == null) { _instance = new SessionManager
(); } } } 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
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
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
{ 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
GetAllKey(); public abstract void Remove(string key); public abstract void RemoveAll(); public abstract void RemoveAll(Func
removeExpression); public abstract V this[string key] { get; } }}

  

转载于:https://www.cnblogs.com/sunkaixuan/p/4564612.html

你可能感兴趣的文章
http://lorempixel.com/ 可以快速产生假图
查看>>
编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成...
查看>>
一个自己写的判断2个相同对象的属性值差异的工具类
查看>>
oracle连接的三个配置文件(转)
查看>>
Python内置函数(29)——help
查看>>
Android TextView加上阴影效果
查看>>
《梦断代码》读书笔记(三)
查看>>
AngularJS学习篇(一)
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
spring security 11种过滤器介绍
查看>>
代码实现导航栏分割线
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
luogu4849 寻找宝藏 (cdq分治+dp)
查看>>
关于源程序到可运行程序的过程
查看>>
C# Async与Await的使用
查看>>
Mysql性能调优
查看>>
iOS基础-UIKit框架-多控制器管理-实例:qq界面框架
查看>>
poj1611 简单并查集
查看>>
Ubuntu 14.04下安装CUDA8.0
查看>>
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>