.Net 4 Framework对象缓存和标记

.Net 4 Framework对象缓存和标记,.net,caching,.net-4.0,appfabric,.net,Caching,.net 4.0,Appfabric,我查看了.Net Framework对象缓存系统.Runtime.Caching API,没有看到任何对将标记附加到缓存对象的支持 我正在寻找一个类似于AppFabric的API,它可以支持将标记附加到缓存对象,然后根据标记检索对象 是否有在System.Runtime.Caching上构建的公共可用库可以实现这一点 查看了System.Runtime.Caching名称空间后,我认为将其扩展到包含标记是非常困难的,尽管未必不可能。如果查看ForObjectCache,它似乎是缓存的基类,则标记

我查看了.Net Framework对象缓存系统.Runtime.Caching API,没有看到任何对将标记附加到缓存对象的支持

我正在寻找一个类似于AppFabric的API,它可以支持将标记附加到缓存对象,然后根据标记检索对象

是否有在System.Runtime.Caching上构建的公共可用库可以实现这一点

查看了System.Runtime.Caching名称空间后,我认为将其扩展到包含标记是非常困难的,尽管未必不可能。如果查看ForObjectCache,它似乎是缓存的基类,则标记的方法中没有支持,如果查看

显然,可以重载方法以提供标记,但CacheItem还需要扩展以添加标记属性。我担心的是,对于任何类似于AppFabric支持的GetObjectsByTag/ByAllTags/ByAnyTag的基于标记的搜索方法,缓存都会简化为遍历所有缓存项并逐个检查它们,这可能不会对性能产生您希望的影响,尽管如此,我可以看出,基于数据库的缓存在这方面可能具有优势


在标签的DefaultCacheCapabilities枚举中也没有任何支持,因此API无法向任何调用方发出可以使用标签的信号。

这也是我所怀疑的,但我们可以编写优化的代码来支持标签。