У меня есть проект, в котором Ninject используется как контейнер IoC. Моя забота заключается в том, что у многих классов есть такие конструкторы:
[Inject]
public HomeController(
UserManager userManager, RoleManager roleManager, BlahblahManager blahblahManager) {
_userManager = userManager;
_roleManager = roleManager;
_blahblahManager = blahblahManager;
}
Что делать, если я не хочу сразу иметь все экземпляры этих классов?
Способ, когда все эти классы обернуты Lazy<T>
и переданы конструктору, не совсем то, что мне нужно. Экземпляры T
еще не созданы, но Lazy<T>
экземпляры уже сохранены в памяти.
Мой коллега предлагает мне использовать шаблон Factory для управления всеми экземплярами, но я не уверен, что у IoC есть такая замечательная ошибка дизайна.
Есть ли обходной путь для этой ситуации, или у IoC действительно есть такой большой недостаток в дизайне? Может быть, я должен использовать другой контейнер IoC?
Любые предложения?