0

我正在组合一个报告服务,该服务基于与支持(我敢说是遗留)数据存储的非常慢的连接。我对数据存储的唯一访问是通过用 java 编写的 Web 服务 SDK。

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

我已经使用 完成了概念验证,System.Web.Caching.Cache但它没有提供我需要的对缓存中数据的控制。我想使用 MS Enterprise Application Caching Block,因为它确实提供了控制。我不想将 Unity 添加到应用程序中(句号,'nuff 说)。

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

4

1 回答 1

1

似乎我让这种方式(方式,方式)变得比它需要的更复杂。

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

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

<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();

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

于 2012-12-12T12:57:02.910 回答