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ファーム上で動作するアプリケーションのための適切なアプローチです:現在、私はこのようなApplication
(HttpApplicationState
)にコンテナを作成し、保存していますか?私が気づく必要がある問題はありますか?コンテナを置くのに良い場所はありますか?
私はApplication
の状態がウェブファーム内の複数のサーバーで共有されていないことを知っていますが、Application
状態に格納されているデータが要求固有でない限り、これは問題ではないはずです。
横断的関心事のようなstatic gatewayでコンテナを保管することを好むが、とにかく - これは本当にとはあまりありません。私が尋ねたもの静的ゲートウェイを使用しても、要求を超えて保持されることはありません。 –
これはあなたの質問に答えた "コンテナを置くのに良い場所はありますか?"とにかく、コンテナは通常、アプリケーションの残りの部分にさらされないので、大きな違いはありません。静的なIoC *を使用すると、静的な変数に内部的に格納されているので、リクエストをまたいで保持します。 –