ServiceStackのIreationSclientManager + Ninject - InsingletScopeを使用しますか?

StackOverflow https://stackoverflow.com//questions/12654945

  •  11-12-2019
  •  | 
  •  

質問

私はServicestackのRedisクライアントを使い始めたばかりのASP.NET MVCアプリケーションを持っています。私は私のIOCコンテナとしてninjectを使います。現在私のバインディングは次のようになります。

Bind<IRedisClientsManager>()
    .ToMethod(c => new BasicRedisClientManager("localhost:6379"))
    .InSingletonScope();

Bind<ICacheClient>().ToMethod(c => c.Kernel.Get<IRedisClientsManager>().GetCacheClient());
Bind<IRedisClient>().ToMethod(c => c.Kernel.Get<IRedisClientsManager>().GetClient());
.

IcacheClientまたはIrectionSclientの要求に任意の要求でインスタンス化するために使用するために、App Start-upでBasicRedClientManagerの1つのシングルトンインスタンスを効果的に作成しています。私がここでやったことは典型的なユースケースで正しいですか?事前にありがとう!

役に立ちましたか?

解決

はい basicRedsclientManager pooleddreientManager の両方がスレッドセーフであり、シングルトンとして使用されるように設計されています。2の違いは、BasicRedClientManagerが戻り、PooledRedClientManagerがOpen Redis接続のプールを保持している間に新しい接続を作成することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top