Для чего необходимо внедрение зависимости (dependency injection)?
Вот пример кода из всеми любимого тутора Nerddinner
public class DinnersController : Controller {
IDinnerRepository dinnerRepository;
//
// Dependency Injection enabled constructors
public DinnersController()
: this(new DinnerRepository()) {
}
public DinnersController(IDinnerRepository repository) {
dinnerRepository = repository;
}
...
Какая разница, если я буду создавать объект репозитория в методах контроллера?
public ActionResult Edit(int id) {
DinnerReposotiry dinnerRepository = new DinnerRepository();
Dinner dinner = dinnerRepository.GetDinner(id);
if (!dinner.IsHostedBy(User.Identity.Name))
return View("InvalidOwner");
return View(dinner);
}