ServiceStackのIreationSclientManager + Ninject - InsingletScopeを使用しますか?
-
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接続のプールを保持している間に新しい接続を作成することです。
所属していません StackOverflow