我有一个项目,其中 Ninject 用作 IoC 容器。我担心的是很多类都有这样的构造函数:
[Inject]
public HomeController(
UserManager userManager, RoleManager roleManager, BlahblahManager blahblahManager) {
_userManager = userManager;
_roleManager = roleManager;
_blahblahManager = blahblahManager;
}
如果我不想一次拥有这些类的所有实例怎么办?
当所有这些类都被包装Lazy<T>
并传递给构造函数时,这种方式并不完全是我所需要的。T
实例尚未创建,但实例Lazy<T>
已存储在内存中。
我的同事建议我使用工厂模式来控制所有实例化,但我不确定 IoC 是否有如此出色的设计错误。
这种情况是否有解决方法,或者 IoC 的设计真的有这么大的缺陷?也许我应该使用另一个 IoC 容器?
有什么建议么?