使用泛型的聪明缓存?

时间:2009-10-13 23:36:23

标签: asp.net generics caching system.web.caching

是否有任何聪明的图层可以放在System.Web.Caching.Cache类的顶部,以处理使用泛型获取项目的简单方案。

我想提供一个委托函数来检索项目,并且能够获取具有强类型GetItem和委托函数的项目,以便在找不到项目时检索它。

例如

 CleverCache<K, T> 
 T GetItem(K)

 RegisterDelegate(FetchItemDelegate<K,T>)

我还想要一种处理只能处理单个对象的缓存的好方法。

ASP.NET Cache对象看起来非常原始。它看起来像是一个超时的哈希表。他们也可以把它称为HashtableWithTimeout,因为我所关心的一切。我想要一些更好的吸引力。这是缓存应用程序块将为我做的事情吗?

是的,我知道这是一个相当简单的代码,我现在没有时间让任何车轮重新发明。

2 个答案:

答案 0 :(得分:1)

您可能希望查看一些可以包装ASP.NET缓存的更复杂的缓存提供程序,例如Enterprise Library的缓存块。它为对象生命周期,失效,检索等提供了更强大,更丰富的缓存故事。

ASP.NET缓存比你给它更值得信赖 - 它实际上是一个非常强大的基础。如你所指出的那样,它没有做任何复杂的事情,但它设计精良且足够强大,足以支持一些很酷的东西。

答案 1 :(得分:0)

您可能希望查看SharedCacheMicrosoft Velocity作为ASP.NET中可用的基本缓存的改进。我不知道强大的输入是如何被广泛设计的 - 但从样本和文档我看到它比ASP.NET Cache更好。