通常,操作方法將與像這樣結束:如何將依賴關係注入模型?
return View(new Model());
但如果我的模型都將有服務注入,它不會有一個默認的構造函數。因此,它必須是這樣的:
return View(new Model(new Service());
但如果服務有依存關係它會更是這樣的:
return View(new Model(new Service(new Repository())));
...它開始變得荒謬。這不是IoC容器的用途嗎?所以,我會忍不住寫更多的東西是這樣的:
return View(container.Resolve<IModel>());
,但爲了得到container
它必須被注入到我的控制,我聽說injecting the container itself is an anti-pattern。
那麼正確的方法是什麼?當我從操作方法返回視圖時,如何將我的依賴關係傳遞給我的模型?