具有依赖注入(DI)的实例管理

时间:2010-04-22 13:31:56

标签: wcf dependency-injection

我试图了解DI究竟是如何运作的。 我目前正在使用Windsor作为DI容器。我使用它在代码中动态加载我的服务而不直接引用。但是我已经改变了行为,并希望在使用DI的实例mgmt上了解更多信息。

我有一个web app项目,这里是一个使用PerCall作为instancemode的WCF服务。这意味着,新的实例/调用。在这个WCF中,我调用一个服务(通过DI加载),这个服务调用另一个服务(再次通过DI加载)。 WCF是appdomain中的一个新实例,但是服务呢。他们也是新的例子?这个DI容器是否在所有WCF实例之间共享,并且此容器中的服务也是单个实例吗?

任何人都可以澄清吗?

1 个答案:

答案 0 :(得分:1)

当你的描述如此含糊时,很难回答。但有几点:

  • 组件不应该''共享''容器。组件不应该引用容器。

  • 每个应用程序都有一个根容器实例。在webapp中,您通常会在ApplicationStart中实例化并配置它,并让它从那里完成它的工作。

  • 要小心不要依赖于生命较短的组件。例如,单例组件不应依赖于瞬态组件。