public class DataCache
{
/// <summary>
/// 获取当前应用程序指定CacheKey的Cache值
/// </summary>
/// <param name="CacheKey"></param>
/// <returns></returns>
public static object GetCache(string CacheKey)
{
System.Web.Caching.Cache objCache = HttpRuntime.Cache;
return objCache[CacheKey];
} /// <summary>
/// 设置当前应用程序指定CacheKey的Cache值
/// </summary>
/// <param name="CacheKey"></param>
/// <param name="objObject"></param>
public static void SetCache(string CacheKey, object objObject)
{
System.Web.Caching.Cache objCache = HttpRuntime.Cache;
objCache.Insert(CacheKey, objObject);
} /// <summary>
/// 设置当前应用程序指定CacheKey的Cache值
/// </summary>
/// <param name="CacheKey"></param>
/// <param name="objObject"></param>
public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration,TimeSpan slidingExpiration )
{
System.Web.Caching.Cache objCache = HttpRuntime.Cache;
objCache.Insert(CacheKey, objObject,null,absoluteExpiration,slidingExpiration);
}
}//刚找到了个Cache的类,
我的理解,使用Cache,比如有 class A 我 new 以后把它使用Cache 设置了KEY ,
就会在内存里,然后根据 KEY 到内存中找回相应的Cache 但里这个类里,写了两个方法,一个是GetCache一个是SetCache,使用一开始肯定会使用SetCache的先设调Cache。
比如
A mya = new A();
SetCache("CacheA",mya)
//问题就是,那我的程序跑起来,我岂不是也要每次都NEW 然后再放进Cache里?这样有什么意义?怎样实现 先检查有没Cache 如果没有NEW 一个放进去,有的话直接取。。
public A GetA()
{
A mya = GetCache("CacheA") as A;
if(mya == null)
{
mya = new A();
SetCache("CacheA",mya)
}
return mya;
}
{
new
}
else
{
SetCache
}
比如
A mya= new A();
甲用户运行程序 对A进行实例化 mya 的指针指向实例A的内存空间 然后乙用户又再次运行 那么又NEW 了一个A实例,
那么 这个里A实会覆盖第一次NEW的实列空间,还是从新开辟新的空间?
mya的指针会接 指向那儿?