2012-05-31 11 views
5
  • コントローラからアウトオブファイルContainerにアクセスするにはどうすればよいですか?
  • 私のクラスでContainer.Resolveを使用する必要がありますが、Containerインスタンスにはどのようにアクセスできますか?
  • シングルトンですか?
  • new Container()を使用できますか?Funq.StaticContainerのようなチェーンはありますか?

Mythz for gist hint、a)またはb)またはc)のおかげです。ServiceStackでのFunqの使用方法

私はMythzの解決法を使用しますが、それは私には受け入れられますが、それはパターン(ServiceLocatorパターン)について懸念があります。check here for extra infoです。

+0

http://stackoverflow.com/questions/3139209/does-funq-ioc-container-support-property-injection アプローチは問題ありません。 – ozz

答えて

7

AppHostインスタンスを静的に参照するには、いくつかの方法があります。あなたが具体的なFunq.Containerにアクセスする必要があるいくつかの理由のために、あなたはシングルトン経由でアクセスできる場合

HostContext.TryResolve<T>(); 
HostContext.Resolve<T>(); 
HostContext.AppHost.TryResolve<T>(); 

:あなたはとIAppHostインスタンスを経由して依存関係を解決することができます

ServiceStackHost.Instance.Container 

サービス内の一方で、カミソリビューページ、などあなたが使用することができます。

base.TryResolve<T>(); 
+0

私はTryResolve (IResolverから来ました)を使用してIAppHostに解決メソッドがありません – ozz

+0

更新のお返事ありがとうございます。 TryResolveは、ResolveがResolutionExceptionをスローする依存関係がない場合にnullを返します。 – mythz

関連する問題