zoukankan      html  css  js  c++  java
  • 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="*" %>
    

     

  • 相关阅读:
    小小小康
    GC日志补充
    一次GC问题定位
    mycat1.5~1.6的一个bug
    [转] java Statement和PreparedStatement批量更新
    java 中的instanceof 运算符
    Java学习篇之数组方法
    iOS7适配的一点小技巧
    iOS 中正确切换摄像头&正确实现设置帧率的方式
    iOS 音量键事件监控响应
  • 原文地址:https://www.cnblogs.com/zengxiangzhan/p/1844871.html
Copyright © 2011-2022 走看看