Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用泛型的智能缓存?_Asp.net_Generics_Caching_System.web.caching - Fatal编程技术网

Asp.net 使用泛型的智能缓存?

Asp.net 使用泛型的智能缓存?,asp.net,generics,caching,system.web.caching,Asp.net,Generics,Caching,System.web.caching,是否有聪明的层位于System.Web.Caching.Cache类之上,用于处理使用泛型获取项目的简单场景 我想提供一个委托函数来检索项目,并且能够使用强类型的GetItem来检索项目,如果找不到项目,还可以提供一个委托函数来检索项目 比如说 CleverCache<K, T> T GetItem(K) RegisterDelegate(FetchItemDelegate<K,T>) CleverCache T获取项目(K) RegisterDelegate

是否有聪明的层位于System.Web.Caching.Cache类之上,用于处理使用泛型获取项目的简单场景

我想提供一个委托函数来检索项目,并且能够使用强类型的GetItem来检索项目,如果找不到项目,还可以提供一个委托函数来检索项目

比如说

 CleverCache<K, T> 
 T GetItem(K)

 RegisterDelegate(FetchItemDelegate<K,T>)
CleverCache
T获取项目(K)
RegisterDelegate(FetchItemDelegate)
我还想用一种很好的方法来处理只处理单个对象的缓存

ASP.NET缓存对象看起来非常原始。它看起来就像一个有超时的哈希表。他们也可以把它叫做HashtableWithTimeout,我才不管呢。我想要一些更好的。这就是缓存应用程序块将为我做的事情吗


是的,我知道这是一段相当简单的代码,我现在没有时间进行任何重新设计。

您可能需要研究并改进ASP.NET中的基本缓存。我不知道强类型在这两种缓存中设计得有多广泛,但从我看到的示例和文档来看,它比ASP.NET缓存好。

您可能想了解一些更复杂的缓存提供程序,它们可以封装ASP.NET缓存,例如的缓存块。它为对象生命周期、失效、检索等提供了更加健壮和丰富的缓存故事


ASP.NET缓存应该得到比您给予它更多的信任-它实际上是一个非常强大的基础。单独使用,它不会像您指出的那样做任何复杂的事情,但它设计良好,足够强大,可以支持一些非常酷的东西。

Velocity和SharedCache是很棒的产品,但它们解决了一类非常特殊的问题,这个问题不是其中的一部分。更好的说法可能是,当OP真的需要一辆小汽车时,你建议他从自行车到城市公交系统。我不知道EL缓存块对类型安全缓存或泛型有任何支持。@Lbushkin它没有,但它确实提供了一个框架,可以更容易地允许项目获取委托,这是OP所描述的核心。添加泛型非常简单。