C#缓存使用缓存依赖

时间:2010-01-05 15:43:34

标签: c# caching cache-dependency

我正在尝试在Web应用程序中实现缓存。缓存将在BLL中完成。

BLL方法签名是

public static List<Ailias> Select(List<Filter> filters) 

目前只是在DAL中调用相应的方法。

我遇到的问题是我的缓存依赖项将是过滤器对象,每当过滤器对象不同时,就应该进行新的DAL调用。

如何添加此依赖项,我在文档中找到的所有内容都依赖于文件?

2 个答案:

答案 0 :(得分:0)

AFAIK预定义了两个CacheDependancies(File和Sql)但是没有什么可以阻止你实现你自己的CacheDependancy,如in this link所述

答案 1 :(得分:0)

缓存依赖项只是从缓存中卸载项目的后台方法。这意味着将缓存管理逻辑放在另一个系统/进程中。它可以工作,但它也可能引入更多的复杂性。

“......只要过滤器对象不同......”

与什么不同?先前在该方法调用中使用过的东西?听起来像List集合是你的缓存密钥。

考虑在List集合上实现一个唯一的哈希键,并在缓存中维护两个项目 - 来自过滤器的缓存键,其中包含静态名称,如“list-alias-filter-key”和List集合。 / p>

当您对该方法进行后续调用时,将List唯一散列键(缓存键)与“list-alias-filter-key”中的键进行比较。如果它们是相同的,您知道可以安全地拉出List的缓存值。如果它们不同,请使用新的List集合重新查询并重置缓存中的两个值。