|
|
1
8
我不是自动空调专家,但有其他国际奥委会集装箱的经验。我想这个问题会给我一个尝试自动空调的理由。 基于IOC容器的设计应努力将所有代码与访问容器隔离开来,入口点或主机级别除外。我使用autopac和winforms创建了下面的示例,以演示窗体如何通过其构造函数访问服务。 我不太清楚为什么你认为你需要内部容器。也许你可以发表评论,我可以提供更详细的回复。
|
|
|
2
5
1)从您给出的示例中,我可以假设您主要使用IOC容器作为服务定位器。尽管几乎所有容器都支持它,但主要用途是 依赖注入 .这意味着您应该完全避免调用resolve方法,并让容器为您注入所有依赖项。它们之间的区别(服务定位器和依赖注入)超出了这个主题。 2)如果您仍然想使用它作为服务定位器,您可以只使用根容器。( 程序容器 在您的情况下)而不创建内部容器。顺序如下:
3)容器层次结构在需要不同范围内的单例行为的情况下非常有用:
btw autopac鼓励人们使用 tagged contexts 要解决这些问题: |
|
|
3
3
正如MarkLindell指出的那样,在autopac应用程序中通常不需要直接访问容器。 推荐的方法是在应用程序启动时访问一次,正如Mark所做的那样。 随后需要创建对象的其他组件可以声明IContext类型的构造函数参数,AutoFac将自动注入该参数。 另一种不需要依赖autopac组件的方法是使用生成的工厂,如下所述: http://code.google.com/p/autofac/wiki/DelegateFactories 希望这有帮助! |