私は DI の初心者なので、これが間違ったアプローチやばかげた質問である場合はご容赦ください。
注文を作成/更新するフォームがあり、表示する製品と顧客のリストを取得する必要があることがわかっているとします。編集中の Order オブジェクトを渡したいのですが、依存関係として ProductsService と CustomersService も注入したいと考えています。
そのため、IoC コンテナー (どちらを使用する場合でも) でサービスを提供する必要がありますが、編集する Order オブジェクトを提供するのは呼び出し元のコード次第です。
Order オブジェクトを最初のパラメーターとして受け取り、その後に ProductsService と CustomersService を受け取るようにコンストラクターを宣言する必要があります。
public OrderForm(Order order, ProductsService prodsSvc, CustomersService custsSvc)
...または、依存関係が最初に来て、 Order オブジェクトが最後に来る必要があります。例:
public OrderForm(ProductsService prodsSvc, CustomersService custsSvc, Order order)
それは問題ですか?使用する IoC コンテナーに依存しますか? それとも「より良い」方法はありますか?