2016-07-20 2 views
1

私は依存関係の存続期間の概念にかなり新しいです。私はdifferent lifetime typesに関するドキュメントを読んだ。コンストラクタインジェクションを使用したInstancePerDependencyの存続期間

InstancePerDependencyの場合、デフォルトのものです。このページでは、ライフタイムスコープでの解決について説明し、コンテナが適切に処理するようにしています。私はこれを理解することができます。

しかし、Autofacが自動的にコンストラクタを介して依存関係を挿入するとどうなりますか? Webリクエストが完了したときに、コンテナにまだ参照が保持されていますか?

答えて

3

This documentationが役に立ちます。 Autofac統合ライブラリと標準作業単位 寿命スコープが作成され、自動的に配置されていること

注意。 たとえば、AutofacのASP.NET MVC統合では、Webリクエストの開始時に生涯有効範囲 が作成され、すべて のコンポーネントがそこから解決されます。 Webリクエストの最後に、スコープが自動的に破棄されます。追加の スコープを作成する必要はありません。 インテグレーションライブラリのいずれかを使用している場合は、 自動作成スコープが利用可能であることに注意する必要があります。言い換えれば

、Autofacは(それが依存関係を注入するなら、それはでなければなりません)Webリクエストを処理するために、あなたのコントローラを作成している場合、依存関係が各コントローラ用に作成されたスコープを使用して解決して配置されるときのWeb要求の終了を。

+0

処分される参照を保持するというこの考え方が、コンテナから直接解決すべきではない理由です。 –

+0

この場合、IntancePerDependencyは実質的にInstancePerRequestと同じですか? – Jonathon

+0

それは私がそれを理解した方法です。 –

関連する問題