Я играю с DI (используя Unity).Я научился делать конструктор и инъекцию свойств.У меня есть статический контейнер, доступный через свойство в моем файле Global.asax (класс MvcApplication).
Мне нужен ряд различных объектов в моем контроллере.Неправильно вводить их через конструктор, отчасти из-за их большого количества, а отчасти потому, что они нужны только в некоторых методах Actions.
Вопрос в том, есть ли что-то не так свызывать мой контейнер напрямую из методов Action?
public ActionResult Foo()
{
IBar bar = (Bar)MvcApplication.Container.Resolve(IBar);
// ... Bar uses a default constructor, I'm not actually doing any
// injection here, I'm just telling my conatiner to give me Bar
// when I ask for IBar so I can hide the existence of the concrete
// Bar from my Controller.
}
Это кажется самым простым и наиболее эффективным способом выполнения действий, но я никогда не видел такого примера.
Что-то не так с этим?Я что-то упускаю из виду?