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

     

  • 相关阅读:
    从一个网页上摘取想要的元素
    Oracle数据库迁移
    java 内部类
    关于robot framework 环境搭建的几点注意
    robotframework 页面已经locate到元素 但是操作提示element is no longer valid!
    转 PyQt学习资料
    Java 大数值
    【转】Excel 使用技巧
    Java调用WebService
    String StringBuffer StringBuider
  • 原文地址:https://www.cnblogs.com/zengxiangzhan/p/1844871.html
Copyright © 2011-2022 走看看