0

バッキング (あえて言うならレガシー) データ ストアへの非常に低速な接続に基づくレポート サービスをまとめています。データ ストアへの唯一のアクセスは、Java で記述された Web サービス SDK を介することです。

NinjectDIに使用する MVC3 C# フロント エンドがあります。既定のレポートのリストとパラメーターのプロンプトが頻繁に変更されることはほとんどありません。鮮度とセキュリティ (ユーザー リスト) の両方について、より適切に制御する必要があるプロンプトがいくつかあります。

を使用して概念実証を行いSystem.Web.Caching.Cacheましたが、キャッシュ内のデータに対して必要な制御が提供されません。コントロールを提供するため、MS Enterprise Application Caching Block を使用したいと考えています。アプリケーションに Unity を追加したくありません (ピリオド、'nuff は言いました)。

/Ninjectを解決するために使用した人はいますか?ICacheManagerCacheManager

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 に答える