【发布时间】:2010-11-12 15:47:50
【问题描述】:
在 ASP.NET 中,是否有任何理由不制作一组静态的从缓存对象中添加/删除/获取的函数?
Get() - 只是获取项目,没有理由不是静态的
Add()、Remove() - 我读过在缓存中添加/删除有它自己的内部锁定机制,所以它们可以是静态的,而无需我创建自己的 lock(){} 包装。
【问题讨论】:
在 ASP.NET 中,是否有任何理由不制作一组静态的从缓存对象中添加/删除/获取的函数?
Get() - 只是获取项目,没有理由不是静态的
Add()、Remove() - 我读过在缓存中添加/删除有它自己的内部锁定机制,所以它们可以是静态的,而无需我创建自己的 lock(){} 包装。
【问题讨论】:
它们已经可以在静态上下文中通过
HttpRuntime.Cache
HttpContext.Current.Cache 的方法无论如何都只是转发到此调用,但如果HttpContext.Current.Cache 不在HttpContext.Current 可用的生命周期中,则调用它可能会导致运行时错误。
回答您的问题:
是的,您可以使用它来处理它。你会有类似的东西
public static class StaticCache
{
public static Add(object obj)
{
try {
HttpRuntime.Cache.Add(obj);
}
catch(Exception ex) {
//log or something
}
}
}
而且用法类似于
StaticCache.Add("bob");
【讨论】:
HttpContext.Current.Cache 来静态访问它。