有没有人使用Ninject和MS企业缓存应用程序块



我正在基于与后备(我敢说遗留)数据存储的非常慢的连接来组合一个报告服务。我对数据存储的唯一访问权限是通过用 Java 编写的 Web 服务 SDK。

我有一个 MVC3 C# 前端,使用 DI 的Ninject。预制报表列表和参数提示不太可能频繁更改。有一些提示,我需要更好地控制新鲜度和安全性(用户列表)。

我已经使用 System.Web.Caching.Cache 进行了概念验证,但它不提供我对缓存中数据所需的控制。我想使用 MS 企业应用程序缓存块,因为它确实提供了控件。我不想将 Unity 添加到应用程序中(句号,"说得够多了)。

有没有人使用Ninject来解决ICacheManager/CacheManager

似乎我正在使这种方式(方式,方式)比它需要的更复杂。

在没有 Unity 和检测的情况下实现应用程序块缓存的说明。

将以下内容添加到配置文件中:

<section name="cachingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings, Microsoft.Practices.EnterpriseLibrary.Caching" requirePermission="true" />
...
<cachingConfiguration defaultCacheManager="Default">
  <cacheManagers>
    <add name="Default" expirationPollFrequencyInSeconds="60" maximumElementsInCacheBeforeScavenging="10000" numberToRemoveWhenScavenging="100" backingStoreName="NullBackingStore" type="Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager, Microsoft.Practices.EnterpriseLibrary.Caching" />
  </cacheManagers>
  <backingStores>
    <add type="Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.NullBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching" name="NullBackingStore" />
  </backingStores>
</cachingConfiguration>

在需要缓存的地方声明:

ICacheManager _cache = CacheFactory.GetCachemanager();

然后,您可以使用缓存块的完整宽度和深度。

最新更新