16

私は現在、大規模な MVC 4.5 アプリケーションの一部である、作成中の SignalR アプリケーションで ServiceStack を使用しようとしています。

現在、ハブを開始する App_Start フォルダーにクラスがあります。私の質問は、ServiceStack の wiki に示されているように、コンテナーへの参照を取得する方法です。

container.Register<IRedisClientsManager>(c => new PooledRedisClientManager("localhost:6379"));
container.Register<ICacheClient>(c => (ICacheClient)c.Resolve<IRedisClientsManager>().GetCacheClient());

私がやっていることは、Redis を開発キャッシュ層として使用し、既存の membase を本番キャッシュ層として使用することを計画しています。

コンテナの入手方法を教えてください。

4

1 に答える 1

20

ServiceStack 外部の ServiceStack の IOC からの依存関係を解決するには、次のいずれかを使用できます。

var foo = HostContext.TryResolve<IFoo>(); //null if doesn't exist
var foo = HostContext.Resolve<IFoo>();    //throws if IFoo doesn't exist

ServiceStack の外部からコンテナにアクセスする方法はいくつかありますが、最も簡単な方法は次のとおりです。

var container = HostContext.Container;

AppHost シングルトン経由

IAppHostこれは、シングルトンを介してアクセスする簡単な方法です。

HostContext.AppHost.Container
于 2012-11-12T20:31:11.097 に答える