2014-12-27 27 views
0

我剛開始學習IoC,並且我理解它的一般用法,但到目前爲止,AutoFac,Ninject和Zenject的加載過程似乎基於加載不基於數據的對象。在IoC中,通過ID加載對象的做法是什麼?

換句話說,ConsoleLogger是在請求ILogger時創建的,它不需要任何特殊的ID,這是有道理的。但是,當我想爲Id 4加載IUser時呢?有沒有一個標準的IoC來處理這個問題,還是接口應該帶有基於Id的加載方法?

例如,我應該有IUserManager,與LoadUser(int id)作爲一種方法?還是有一些IoC結構呢?

  • 謝謝。

[注:我做了搜索這個網站,但我的疑問似乎沒有拉起來的相關信息以及類似的問題搜索產量太多的通用問題過濾]

回答

0

IoC容器規則的方式我們通過依賴鏈接對象,依賴意味着Iterfaces下的一些邏輯,所以IoC主要在類型級別而不是實例級別上工作。

請注意,沒有任何依賴關係,界面以及特殊範圍要求的類型可以通過使用「new」關鍵字來合法創建。數據傳輸對象(dto's)。

在你的情況,你可能需要一種工廠,可以通過參數實現什麼樣的對象調用者需要。

但是,我會建議你從業務邏輯中分離數據,儘可能分離數據。

相關問題