0

StructureMap のドキュメントによると、コンテナーのデフォルトの動作は、親コンテナーが要求されるたびに新しいオブジェクト インスタンスを解決し、ネストされたコンテナーが同じオブジェクト インスタンスを解決することです。

99% のケースではこれで問題ありませんが、ネストされたコンテナを親コンテナと同様に動作させ、メソッドに依存することなくデフォルトで新しいオブジェクト インスタンスを解決する方法があるかどうか知りたいと思っています.AlwaysUnique()

これは可能.AlwaysUniqueですか、それともオブジェクトごとに行う唯一の方法ですか?

4

1 に答える 1

1

オブジェクト解決のための一時的なコンテキストを作成するように設計されているため、ネストされたコンテナー構成の明示的な指定以外に、それに対するサポートはないと思います。SM 3.0 の IIRC HttpContextScopedライフサイクルは、ネストされたコンテナーを使用して実装されました。

コンテナーから既存のオブジェクトを解決したり、新しいオブジェクトを作成したりする柔軟性が必要な場合は、ファクトリに注入されたコンテキストを介して、または明示的なメソッド呼び出し (factory.Create()またはfactory.ReuseIfExistsOrCreate()) に基づいて、それを処理するファクトリを実装できます。

お役に立てれば!

于 2015-03-16T09:38:41.043 に答える