文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>vs2010--缓存类

vs2010--缓存类

时间:2010-10-06  来源:曾祥展

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

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载