HttpRuntime.Cache
和HttpContext.Current.Cache
之间的区别是什么?
答案 0 :(得分:64)
我从http://theengineroom.provoke.co.nz/archive/2007/04/27/caching-using-httpruntime-cache.aspx
中找到以下详细信息对于缓存,我调查了使用 HttpContext.Current.Cache但之后 阅读其他博客我发现了 使用HttpContext进行缓存 HttpRuntime.Cache做的实际 缓存。使用的好处 HttpRuntime直接就是它 总是可用的,例如,在 控制台应用程序和单元 测试
使用HttpRuntime.Cache很简单。 对象可以存储在缓存中 由字符串索引。随着一个 key和缓存另一个的对象 重要的参数是到期日 时间。此参数设置时间 在从对象中删除对象之前 高速缓存中。
<强> Here is good link for you. 强>
答案 1 :(得分:19)
使用HttpContext进行缓存使用HttpRuntime.Cache进行实际缓存。直接使用HttpRuntime的优势在于它始终可用于控制台应用程序和单元测试。
答案 2 :(得分:1)
使用HttpRuntime.Cache
比使用HttpContext.Current.Cache
更简单。正如已经说过的,对象可以存储在缓存中并由字符串索引。也可以在单元测试和控制台HttpRuntime
中使用可用。
以下是使用HttpRuntime.Cache
的示例。
public static XmlDocument GetStuff(string sKey)
{
XmlDocument xmlCodes;
xmlCodes = (XmlDocument) HttpRuntime.Cache.Get( sKey );
if (xmlCodes == null)
{
xmlCodes = SqlHelper.ExecuteXml(new dn("Nodes", "Node"), "Get_Stuff_From_Database", sKey);
HttpRuntime.Cache.Add(sKey, xmlCodes, null,
DateTime.UtcNow.AddMinutes(1.0),
System.Web.Caching.Cache.NoSlidingExpiration,
System.Web.Caching.CacheItemPriority.Normal, null);
}
return xmlCodes;
}
方法GetStuff
采用字符串参数,该参数用于从数据库中检索一组项目。该方法首先检查由参数键索引的XmlDocument
是否在缓存中。如果是,它只返回该对象,如果不是,则查询数据库。从数据库中检索文档后,将其放入缓存中。如果在规定的时间内再次调用此方法,它将获取对象而不是访问数据库。