私は自分のプロジェクトで DI をかなり多く使用しており、その概念にはかなり満足していますが、よくわからない側面が 1 つあります。
したがって、私の一般的なユースケースは、コントローラーの依存関係をコンストラクターのパラメーター リストにリストする ASP.NET MVC コントローラーを使用することです。これらはコントローラーが DI コンテナーによって構築されるときに渡されます。次に、これらを読み取り専用に割り当てます。コントローラー内のアクションによって後で消費されるプライベート変数。
ここで、私の懸念は、注入された依存関係 (IMemberRepository
としましょう) を 1 つのアクション内でのみ使用する場合 (そして、他に 5 つのアクションがあるとしましょう)、これを ctor の依存関係としてリストする必要があるかContainer.Resolve<IMemberRepository>()
、1 つのアクション内で呼び出す必要があるかです。それが使用されるアクション?
私は、すべての依存関係を ctor にリストするのが好きContainer.Resolve<>()
であり、コード全体に散らばっているのが特に好きではありませんが、上記の例に進むと、DI コンテナーにインスタンス化する意味がありませんIMemberRepository
。使用する!