• vs2010缓存类


    //.net 4.0  重写缓存类(拓展)
    using System.Web.Caching;
    
    public class InMemoryOutputCacheProvider : OutputCacheProvider
    {  
        #region Members   
        private Dictionary<string, InMemoryOutputCacheItem> _cache = new Dictionary<string, InMemoryOutputCacheItem>();  
        private readonly static object _syncLock = new object();  
        #endregion   
    
        #region Methods  
        public override object Add(string key, object entry, DateTime utcExpiry) 
        {   
            Set(key, entry, utcExpiry); 
            return entry;
        }  
    
        public override object Get(string key) 
        {   
            InMemoryOutputCacheItem item = null;   
            if (_cache.TryGetValue(key, out item))   
            {    
                if (item.UtcExpiry < DateTime.UtcNow)   
                {     
                    Remove(key);    
                    return null;      
                }     
                return item.Value;   
            }    
            return null; 
        } 
    
        public override void Remove(string key) 
        {   
            InMemoryOutputCacheItem item = null;  
            if (_cache.TryGetValue(key, out item))  
            {     
                _cache.Remove(key); 
            } 
        }  
    
        public override void Set(string key, object entry, DateTime utcExpiry) 
        {  
            var item = new InMemoryOutputCacheItem(entry, utcExpiry);   
            lock (_syncLock) 
            {  
                if (_cache.ContainsKey(key))  
                {      
                    _cache[key] = item;  
                }    
                else    
                {    
                    _cache.Add(key, item); 
                }   
            } 
        }  
    
        #endregion
    }
    
    
    
    public class InMemoryOutputCacheItem
    { 
        #region Members  
     
        public DateTime UtcExpiry { get; set; }  
        public object Value { get; set; }   
    
        #endregion 
      
        #region Ctor   
    
        public InMemoryOutputCacheItem(object value, DateTime utcExpiry) 
        {   
            Value = value;   
            UtcExpiry = utcExpiry; 
        }  
    
        #endregion
    }
    
    
    

    //配置

            <caching>
                <outputCache defaultProvider="InMemory">
                    <providers>
                        <add name="InMemory" type="InMemoryOutputCacheProvider"/>
                    </providers>
                </outputCache>
            </caching>
    

    //页面

    <%@ OutputCache Duration="15" VaryByParam="*" %>
    

     

  • 相关阅读:
    linux 杂类
    set
    C++ 基础 杂类
    linux 添加samba账户
    git 常用命令
    git 设置bitbucket 邮箱、用户
    C++ shared_ptr
    git 免密码配置
    2014的新目标
    为/Date(1332919782070)/转时间2013-09-23
  • 原文地址:https://www.cnblogs.com/zengxiangzhan/p/1844871.html
Copyright © 2020-2023  润新知