我認爲這個問題的答案是如此明顯,以致沒有人對此寫過文章,但是遲到了,我真的無法解決這個問題。IoC容器的使用;特別是溫莎
我一直在閱讀IoC容器(在這種情況下是Windsor),我錯過了如何從代碼的各個部分與容器交談。
我得到DI,我一直在做可憐的人DI(空構造函數調用具有默認參數實現的重載注入構造函數)一段時間,我可以完全看到容器的好處。但是,我錯過了一條重要的信息;每當你需要服務時,你應該如何引用容器?
我是否創建了一個我傳遞的單個全局實例?當然不是!
我知道我應該把這個:
WindsorContainer container = new WindsorContainer(new XmlInterpreter());
(例如)時,我想我的加載XML配置,但後來我做什麼用的容器?每次創建一個新的容器後,通過一些內部靜態majicks或其他方式持久加載配置,或者每次都必須重新加載配置(我猜不是,或者生命週期不能工作)。
如果不明白這一點阻止我工作了生命週期是如何工作的,並獲得與使用一些國際奧委會awsomeness
感謝,
安德魯
實際上,如果你在尋找它,很多環境都會有一個「全局根」類。 Silverlight和WPF擁有App類(App.xaml的代碼隱藏),這與任何錨定IOC容器的地方都是一樣的。對於較大的WPF和Silverlight,你一定要看看Prism,它提供了大型結構化工具和Unity,這是MS的IOC容器。 – 2010-02-21 17:01:29
@Cylon:和ASP.NET有Application_Start(),但這並不意味着它會讓你截取對象的創建。這隻意味着你有一個地方來設置容器。 – 2010-02-21 17:59:07