En règle générale, une méthode d'action se termine par quelque chose comme ceci:Comment injecter des dépendances dans un modèle?
return View(new Model());
Mais si mon modèle va avoir des services injectés, il ne sera pas un cteur par défaut. Il faudrait donc ressembler à ceci:
return View(new Model(new Service());
Mais si le service a des dépendances, il serait plus comme ceci:
return View(new Model(new Service(new Repository())));
... qui commence à se ridicule. N'est-ce pas à quoi sert un conteneur IoC? Donc, je serais tenté d'écrire quelque chose comme ceci:
return View(container.Resolve<IModel>());
mais afin d'obtenir container
il faudrait injecter dans mon contrôleur, et j'entends que injecting the container itself is an anti-pattern.
Alors, quelle est la bonne façon? Comment transmettre mes dépendances à mon modèle lorsque je renvoie la vue depuis la méthode d'action?