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="*" %>
    

     

  • 相关阅读:
    JavaScript获取键盘事件
    Java 虚拟机的内存结构
    Java 实现 Http 请求工具类
    HTML5之FileReader文件读取接口
    使用 PLSQL 连接 Oracle9i 数据库
    使用 Navicate 连接 Oracle9i 数据库
    Eclipse 刚检出的项目 Build path 的时候提示 No action available
    Eclipse 中 Debug 调试 java 代码一直报 Source not found
    mongodb 客户端工具
    spring 国际化
  • 原文地址:https://www.cnblogs.com/zengxiangzhan/p/1844871.html
Copyright © 2011-2022 走看看