我认为这个问题的答案是如此明显,以至于没有人会费心写关于这个的内容,但现在已经很晚了,我真的无法理解。
我一直在研究IoC容器(在这种情况下是Windsor),但是我不知道如何从代码的各个部分与容器进行通信。
我了解DI,我一直在使用Poor Mans DI(空构造函数调用带有默认参数实现的重载注入构造函数)已经有一段时间了,我完全可以看到容器的好处。然而,我缺少一个至关重要的信息:每次需要服务时,您应该如何引用容器?
我要创建单个全局实例然后传递吗?肯定不是!
我知道我应该调用这个:
WindsorContainer container = new WindsorContainer(new XmlInterpreter());
比如,当我想加载我的XML配置时,那么我对容器该怎么做呢?每次创建新的容器之后,是否通过某些内部静态魔法持久保存已加载的配置,或者我必须每次重新加载配置(我猜不是,否则生命周期不能正常工作)。
如果不理解这一点,将会阻止我理解生命周期如何工作,并开始使用一些IoC的神奇功能。
谢谢,
安德鲁