System.Web.Caching命名空间类介绍

在System.Web.Caching下的类,主要是处理web客户端的Cache
它有如下主要类:
Cache
CacheDependency
SqlCacheDependency

类比较简单直观,只是要特别说明一下Cache类的方法
Add
Insert
Remove
Get
GetType
GetEnumerator
大家是不是没有看到没有修改cache中数据的方法?也就是memcache中的set方法,用insert替代就可以了

CacheDependency类也有必要介绍
它是架设在数据和cache之间的一座桥梁,称为缓存依赖类,其意义表现在当缓存对象的实际数据发生改变时,他能及时通知缓存对象
具体用法如下
private static CacheDependency mydepen;
…………
if(Cache[XXX]==null)
{
DataSet myds=new Dataset();
myds.ReadXml(this.MapPath(Request.ApplicationPath+@"/data.xml");
mydepen=new CacheDependency(this.MapPath(Request.ApplicationPath+@"/data.xml");
Cache.Add("XXX",myds,mydepen,DataTime.Now.AddSeconds(10),TimeSpan.Zero,CacheItemPriority.Normal,null);
}
如果文件改动,dependency就会生效,然后同时把cache和dependency消除

 

-----------------------------------------------------------------------

 

Cache所在的命名空间是啥?

我的VS2008没法用Cache["key"]
是不是要包含什么命名空间么?

 

System.Web.Caching

 

using System.Web.Caching;


public sealed class Caches
{
    // Methods
    public Caches();
    public static object Read(CacheKey Key)
    {
    return HttpRuntime.Cache[Key.ToString()];
    }

    public static void Write(CacheKey Key, object CacheValue)
{
    if (HttpRuntime.Cache[Key.ToString()] == null)
    {
        HttpRuntime.Cache.Add(Key.ToString(), CacheValue, null, DateTime.Now.AddHours(10.0), TimeSpan.Zero, CacheItemPriority.NotRemovable, null);
    }
    else
    {
        HttpRuntime.Cache.Insert(Key.ToString(), CacheValue, null, DateTime.Now.AddHours(10.0), TimeSpan.Zero);
    }
}


    public static void Write(CacheKey Key, object CacheValue, CacheDependency cd)
{
    if (HttpRuntime.Cache[Key.ToString()] == null)
    {
        HttpRuntime.Cache.Add(Key.ToString(), CacheValue, cd, DateTime.Now.AddHours(10.0), TimeSpan.Zero, CacheItemPriority.NotRemovable, null);
    }
    else
    {
        HttpRuntime.Cache.Insert(Key.ToString(), CacheValue, cd, DateTime.Now.AddHours(10.0), TimeSpan.Zero);
    }
}

}

posted @ 2009-11-05 12:09  Silver.Lee  阅读(767)  评论(0编辑  收藏  举报