1. 程式人生 > >session操作類

session操作類

expr 說明 mes 代碼 foreach minute geo 使用說明 logs

實現代碼:

//聲名一個數據集合
         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; }
    }
}

session操作類