有沒有人有關於DI陷阱的好名單的鏈接列表? 我一直試圖注入控制使用DI,在一個asp.net webforms應用程序,發現在遞歸構建ViewState丟失。 也可能會有幫助的文章列表,其中開發人員需要知道陷阱之前採取在應用程序中實施IoC/DI的一大步。依賴注入陷阱
Q
依賴注入陷阱
2
A
回答
3
DI本身沒有問題。或者更確切地說,這將像枚舉一般編程問題一樣,如傳遞空引用,然後不檢查它。
遞歸積聚的ViewState丟失
「積累」爲某些容器所說的那樣,通常是一個壞主意,並應儘可能避免。看看Windsor FAQ有一些很好的防止積木的原因。這適用於所有IoC容器。
特別是,你的情況似乎是在控件的LoadViewState()(或者頁面的LoadPageStateFromPersistenceMedium())之後發生了堆積,所以它渲染了viewstate無效。也許你的IoC容器提供了一個基本的控制類,它已經處理了這個,你忘了繼承它。恕我直言,在WebForms中做DI是很冒險的(例如這種情況),我寧願訴諸服務位置(只適用於WebForms頁面和控件!)。簡單,並且不需要奇怪的黑客。
現在,IoC + DI可以有一些問題,例如生命週期/範圍問題。 Igor Brejc covers this very thoroughly in this article。特別是在有大量組件的複雜/大型應用中,您必須牢記這一點。
相關問題
- 1. 依賴注入
- 2. 依賴注入
- 3. 依賴注入
- 4. 依賴注入
- 5. 依賴注入
- 6. 依賴注入
- 7. 使用依賴注入來注入依賴注入器
- 8. 陷阱
- 9. 依賴注入Android
- 10. MVP依賴注入
- 11. NServiceBus依賴注入
- 12. WPF依賴注入
- 13. 依賴注入2.17
- 14. 依賴注入`trait`
- 15. MVVM依賴注入
- 16. RESideMenu依賴注入
- 17. AngularJS - 依賴注入
- 18. ui.bootstrap依賴注入
- 19. 依賴注入@protocol?
- 20. Wicket依賴注入
- 21. #botframework依賴注入
- 22. Spring依賴注入
- 23. C#依賴注入
- 24. 依賴注入akka.net
- 25. 依賴注入context.getbeans
- 26. 依賴注入wcf
- 27. Wcf依賴注入
- 28. MVC依賴注入
- 29. 依賴注入UserControl
- 30. 軟件陷阱vs硬件陷阱
我已經嘗試過在控件Init Eventoverler中調用Unity.BuildUp的注入。子控件的遞歸循環導致視圖狀態丟失。如果注射是通過注射特定的對照而明確的,那麼就可以很好地... – chugh97 2010-08-16 15:10:18
@ chugh97:好吧,這對我的口味來說太過ha ish。 – 2010-08-16 15:23:39
IoC和DI之間的區別/關係:http://www.betaversion.org/~stefano/linotype/news/38/ – 2010-08-16 23:56:12