我有一個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容器?
有什麼建議嗎?
實際上你的問題是什麼?你爲什麼不想要這些實例? –
在控制器工作期間,我可能需要UserManager,但不需要RoleManager,反之亦然。如果你談論懶惰實例,那麼讓它們在內存中並不是一件大事,但這是唯一的方法嗎? –
xwrs
爲什麼'UserManager'和'RoleManager'很重要?無論如何,你的施工人員不應該做繁重的工作。 –