我正在使用.net c#Mvc,使用ninject存儲庫模式。我的問題是,當我在函數中使用重複使用時,每次我想從數據庫獲取更多信息並需要訪問另一個表時,我需要從調用此函數的所有位置傳遞存儲庫。我做錯了嗎?這就是這種方式,這是更長的發展,然後只是打開一個連接,並在功能的末尾處置。c#mvc DI注入庫
0
A
回答
2
如果你的類需要載入大量的存儲庫,有時可能表明你的類正在做太多的事情,並可能違反單一責任原則。 也許如果你把這門課分成更小的專業班,問題就不會那麼糟糕。
另一方面,有時傳遞倉庫的負載是不可避免的。你可能會考慮創建一個工廠類來爲你創建遭受'構造器阻塞'的類 - 由於重構構造器初始化只在一個地方(在工廠類中),這應該可以節省一些輸入。
編輯:一個非常簡單的「工廠」類可能是如下:
public class FactoryClass
{
public ClassWithLotsOfRepositories GetClassWithLotsOfRepositories()
{
return new ClassWithLotsOfRepositories(new repository1(),
new repository2(), new repository3());
}
}
所以,你現在可以無需在構造函數中每次都指定庫創建ClassWithLotsOfRepositories的一個實例。
ClassWithLotsOfRepositories myClassThatUsesLotsOfRepositories = new FactoryClass().GetClassWithLotsOfRepositories();
我的例子已經通過構造函數傳遞的具體類。你正在使用Ninject,因此可能有需要解析的接口 - 我只是簡單地說明這個例子來說明這個概念。
+0
尼爾湯普森你可以請舉一個例子創建其他類的工廠類? –
相關問題
- 1. DI:注入ActionFilterAttribute實現(ASP.NET MVC)
- 2. DI構造器注入整潔
- 3. 爲服務層設計DI(構造函數注入)庫
- 4. DDD:服務和存儲庫實例將DI注入爲單例
- 5. 依賴注入(DI)的最佳途徑
- 6. 實施DI時應注入視圖?
- 7. ZF2 DI Setter注入不工作了
- 8. DI在yii2中,構造函數注入
- 9. 依賴注入(DI)Scala中的Play
- 10. PHP-DI不注入所需的類
- 11. 使用Unity注入僞造數據DI
- 12. MVC庫 - 依賴注入助手
- 13. 在沒有任何DI庫的情況下使用依賴注入
- 14. Spring DI:使用註釋在構造函數中注入FileInputStream
- 15. 如何使用ASP.NET MVC核心的DI註冊自定義IObjectModelValidator
- 16. Php-Di註釋性能
- 17. 在Unity DI中註冊AutoMapper
- 18. DI不注抽象類
- 19. 注射參數與PHP-DI
- 20. 瞭解春季註釋DI
- 21. asp.net MVC HTML注入
- 22. MVC依賴注入
- 23. Ninject DI帶類庫項目
- 24. ASP.NET MVC Ninject/DI - 此對象
- 25. asp.net mvc _ViewStart DI掛鉤
- 26. MVC DI/IoC太多依賴?
- 27. Vue可以通過依賴注入(DI)來導入組件嗎?
- 28. 模擬存儲當數據庫應注入DI(通過構造函數)
- 29. 數據庫注入預防c#
- 30. 依賴注入(DI)依賴於接口嗎?
這聽起來像你可能會做錯了。 [這是一個類似的例子](http://blog.devlex.net/post/2011/02/24/Controller-injection-MVC-and-IoC.aspx) – markpsmith