歴史的な理由から、アプリケーションには単一の静的 StructureMapContainer
があり、あらゆる場所のすべての IoC/DI に使用されます。このコンテナーが適切に設定されていることを確認するテストはかなりありますが、テストが互いに干渉しないようにすることはますます難しくなっています。これを軽減するために、いくつかの(静的ではない)コンテナに分割し始めたいと思います。下位互換性を維持するには、このコンテナーで構成されたものを引き続きメイン コンテナーから使用できる必要があります。
この方法でいくつかの基本型のみを処理するシステムの小さな部分の概念実証を実装しました。
_pocContainer = new Container(/* setup code */);
MainContainer.Configure(c => c.For<C>.Use(ctx => _pocContainer.GetInstance<C>());
C
これは機能し、静的コンテナーから のインスタンスを要求すると、 _pocContainer
. ただし、StructureMap を設計する際に、これが通常の使用例と見なされたものではないことは確かです。これによりパフォーマンスが低下するか、またはその他の悪影響がありますか? これを行うためのより良い方法はありますか?