使用拦截实现缓存 - 如何定义密钥?

时间:2014-01-20 16:16:43

标签: caching unity-container

TL; DR 有人能指出我通过拦截添加到解决方案的缓存系统的实施吗?

我正在重构我的一个解决方案,以便通过Unity Intercept实现跨领域的关注。我已经阅读了MSFT的指南,现在我想我可以很容易地实现拦截行为。

然而,我想知道缓存;我想在整个解决方案中始终如一地使用缓存区域和密钥。此外,我在缓存系统上有过期的密钥指定配置。

在Unity的开发者指南中的一个例子中,它检查方法名称 - 这是一种不好的方法,因为它意味着每次新的类/方法必须使用缓存(显然)时改变实现。

我有这个(疯狂)想法实现一个可配置的拦截器,它学习如何从给定的参数组成区域和键,并且可以为每个类(类型)/方法配置。然而,这会给配置带来很多责任;我不喜欢我在* .config文件中编程的感觉。

正如你所看到的,我对如何解决这个问题感到有些迷茫。我不喜欢单身人士,现在缓存系统是一个单身人士,解决方案无处不在。有人可以链接我一个关于我应该如何处理这个问题的好文档吗?是否可以添加缓存并在缓存中定义正确的密钥/区域?

1 个答案:

答案 0 :(得分:0)

对类似问题的快速搜索引导我进入CodePlex上的"Attribute Based Cache using Unity Interception"项目。整个项目看起来在某个Alpha阶段被放弃,但它应该为您提供开始的基线。