【问题标题】:Replacement suggestions for EntLib PolicyInjectionEntLib PolicyInjection 的替换建议
【发布时间】:2011-04-26 13:11:42
【问题描述】:

我们目前使用 Enterprise Library Policy Injection 来缓存我们的数据访问存储库,例如

公共接口 IClientStatusRepository { [CachingCallHandler(24, 0, 0)] IList GetAll(); }

var clientStatusRepository = PolicyInjection.Wrap(new ClientStatusRepository());

这对我们很有效,因为它是声明性的并且绝对不涉及任何配置文件。它也隐藏在我们自己的工厂模式后面,因此很容易更换。

我们已经开始寻找替代解决方案。寻找替代方案的主要原因是我们意识到我们需要改变它当前使 asp.net 缓存中的内容过期的方式。此外,我们希望引入分布式缓存(MemCached 或 AppFabric)并希望能够以声明方式从缓存中驱逐对象

任何人都可以提出一些他们理想地与分布式缓存一起使用的替代方案。如果解决方案需要每个类的配置,它将被自动排除。方面必须在代码中声明。

谢谢

克雷格

【问题讨论】:

    标签: caching enterprise-library code-injection appfabric policy


    【解决方案1】:

    编写调用处理程序相当简单。您还可以使用缓存调用处理程序源作为示例。编写一个自定义调用处理程序来调用您想要使用的缓存系统。

    请注意,这种缓存行为比看起来更难,并且 Entlib 处理程序犯了足够多的错误,我们将其拉回而不是尝试为 Entlib 5 修复它。特别是,它会“泄漏”Web 项目中的用户之间的结果,因为缓存是每个应用程序的。而面对任意类型的任意参数智能形成缓存键也不是一件容易的事。

    【讨论】:

      猜你喜欢
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 2020-07-15
      • 2022-11-16
      • 2022-01-20
      • 1970-01-01
      • 2017-05-21
      相关资源
      最近更新 更多