1

我有一组将从服务中检索的实体。其中一些是静态的,所以我决定创建一个客户端缓存。但我找不到插入缓存的点。我有 svcutil 生成的代理,我需要为其中一些(不是全部)启用缓存。我的观点是建立一些机制,该机制将在 channelFactory/clientBase 级别工作,并将缓存所有必需的实体。

我想要的是:

  • 无需更改业务逻辑的透明缓存(共同或根本)

  • 使用某种属性配置可缓存实体:[Cacheable]

  • 添加缓存实现的能力:MemoryCache、DistributedCache

4

2 回答 2

1

然而,在服务上使用创建缓存属性非常容易(在此处IOperationInvoker查看示例),但在客户端做同样的事情非常困难。

我见过的最好的例子来自 Paolo Salvatori,可在此处获得。很好的解决方案,但由于复杂性,我最终放弃了。我把自己变成了 WCF 调用的通用包装器。仍然有手动任务,但它更简单,我可以轻松管理它。

于 2013-06-10T12:36:15.843 回答
0

使用 Castle Windsor 集成设施进行缓存怎么样?您可以拦截并实现缓存客户端(我做到了)。弱点:我认为这个项目没有很好的文档记录,而且我真的不知道它有多活跃。

http://docs.castleproject.org/Windsor.WCF-Integration-Facility.ashx

于 2015-02-06T22:52:50.800 回答