使用.NET4缓存WCF客户端

时间:2013-06-10 09:47:36

标签: wcf caching client-side

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

我想要的是什么:

  • 透明缓存,没有业务逻辑变化(共同或根本)

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

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

2 个答案:

答案 0 :(得分:1)

然而,在服务上使用IOperationInvoker创建缓存属性非常容易(查看示例here),在客户端进行同样的操作非常困难。

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

答案 1 :(得分:0)

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

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