2009-06-09 10 views
0

ASP.NET MVCを使用してWebアプリケーションを開発していますが、Windsor CastleをIoCコンテナとして使用しています(WindsorControllerFactoryと内部コンポーネント用)。WebファームでWindsorコンテナを使用する

protected void Application_Start() 
    { 
     ... 
     IWindsorContainer windsorContainer = new WindsorContainer(); 
     Application["WindsorContainer"] = windsorContainer; 
     ... 
    } 

    protected void Application_End() 
    { 
     IWindsorContainer container = (IWindsorContainer)Application["WindsorContainer"]; 
     container.Dispose(); 

     Application["WindsorContainer"] = null; 
    } 

これはWebファーム上で動作するアプリケーションのための適切なアプローチです:現在、私はこのようなApplicationHttpApplicationState)にコンテナを作成し、保存していますか?私が気づく必要がある問題はありますか?コンテナを置くのに良い場所はありますか?

私はApplicationの状態がウェブファーム内の複数のサーバーで共有されていないことを知っていますが、Application状態に格納されているデータが要求固有でない限り、これは問題ではないはずです。

答えて

0

は、私は、静的な参照を含むコードを結合することにより、よりエレガントに解決することができますAyendeのIoC from Rhino Commons

+0

横断的関心事のようなstatic gatewayでコンテナを保管することを好むが、とにかく - これは本当にとはあまりありません。私が尋ねたもの静的ゲートウェイを使用しても、要求を超えて保持されることはありません。 –

+0

これはあなたの質問に答えた "コンテナを置くのに良い場所はありますか?"とにかく、コンテナは通常、アプリケーションの残りの部分にさらされないので、大きな違いはありません。静的なIoC *を使用すると、静的な変数に内部的に格納されているので、リクエストをまたいで保持します。 –

関連する問題