0

OK、StructureMapをWeb Apiアプリケーションに接続しました(StackOverflowやインターネット上の他の場所でこれを行う方法のサンプルがたくさんあります)。Web Apiでのオブジェクトの有効期間の保守についての私の理解は、ネストされたコンテナーを介して行われるということです。

ネストされたコンテナを介したオブジェクトの有効期間のメンテナンスの全体像を機能させるには、Ravenのセッションオブジェクトを一時的なシングルトンとして子コンテナに作成する必要があります。今、私はIDocumentStore親コンテナで定義し、シングルトンとしてスコープを設定しました。IDocumentSession親コンテナでも定義されていますが、スコープはHttpContextです。リクエストが着信すると、BeginScope()が呼び出され、ネストされたコンテナが作成されますが、そのIDocumentSession中のオブジェクトは作成されるのではなく、親から継承されます。

これがどのように機能するのかわかりません。オブジェクトが一時的なシングルトンとして子コンテナに作成されていないが、代わりに親から継承されている場合、ネストされたコンテナが破棄されると、オブジェクトは親に戻ります。その後、これはアイデア全体を打ち負かします。一方、セッションを一時的なシングルトンとしてネストされたコンテナに作成する場合、これをどのように実現できますか?そのような設定の正しさをどのように確認できますか?

4

1 に答える 1

1

IDocumentSession を Per Web Request として設定した場合、そもそもネストされたコンテナが必要なのはなぜですか?

そのシナリオでは、ネストされたコンテナーは必要ありません。

一般に、ネストされたコンテナー自体の必要性は疑わしいものです。Castle Windsor (子コンテナーをサポートするコンテナー)の設計者でさえ、Castle Windsorの次のバージョンで子コンテナーのサポートをすべて削除することを検討しています。

于 2012-10-25T20:30:44.363 に答える