У меня есть несколько вопросов о контейнерах DI (в частности, Unity) и о том, как они на самом деле помогают в DI.
Мне кажется, я понимаю IoC / DI и уже несколько лет использую DI на основе конструктора.Обычно, когда я использовал DI, это просто включало конструктор в моем классе, скажем, MyClassX, который принимает интерфейс в качестве аргумента, скажем, IDataService, а затем использовал оператор new для создания экземпляра класса реализации IDataService и передачи его в конструктор MyClassX.Таким образом, MyClassX не нужно знать точный тип IDataService, который он использует, отделяя его от определенного типа.Теперь поправьте меня, если я ошибаюсь, но я так понимаю, что DI ... хотя он не обязательно должен быть основан на конструкторе.
Теперь я видел множество примеров Unity в сети, ноМне трудно не только понять все, что он делает (мне кажется, что это фабрика магических объектов), но и то, как он помогает DI, насколько я понимаю.Мне кажется, что Unity больше похож на реализацию Factory (или на Mock Framework?), А не на что-то, связанное с DI.Я думаю, что я действительно что-то упустил, хотя и жду момента "ах-ха".Я много занимался поиском в Google, но примеры не помогают ... Мне нужно теоретическое объяснение.
Может ли кто-нибудь объяснить мне, для чего именно Unity ... широкие аспекты того, что он делает и как онкак я понимаю, относится к DI.