2

シングルトンのライフスタイル PerWebRequest を持つオブジェクトが各リクエストで作成されているかどうかについて、ドキュメントに参照が見つかりませんでした。

私にとっては、PerWebRequest オブジェクトが Singleton で解決されると、Singleton オブジェクトにローカルに保存され、PerWebRequest オブジェクトとして機能しなくなったようです。

それはバグですか、それとも機能ですか?

4

2 に答える 2

3

「シングルトンのライフスタイル PerWebRequest を持つオブジェクト」の意味を明確にしていただけますか? PerWebRequest ライフスタイルのオブジェクトに依存する Singleton ライフスタイルのオブジェクトがあることを意味する場合、Singleton オブジェクトは、コンテナーの存続期間全体にわたって PerWebRequest オブジェクトの同じインスタンスを持ちます。Castle は依存関係を「その場で」「変更」しません (あまり意味がありません)。一般に、オブジェクトが「より短い」意図されたライフスタイルに依存することはお勧めできません (Singleton は Transient または PerWebRequests に依存すべきではありません)。

于 2012-11-28T16:33:40.670 に答える
2

ほとんどの場合、それはバグです。正確には、これはアプリケーション コードのバグであり、IoC コンテナーのバグではありません。

寿命の長いオブジェクトは、寿命の短いオブジェクトをその状態の一部として保持しようとすべきではありません。

解決策は、依存関係を完全に削除するか、依存関係をオブジェクトの状態の一部から削除することです。

于 2012-11-28T21:13:22.300 に答える