DI Unity在多个项目中 - 最佳实践

时间:2016-09-30 10:41:03

标签: wpf wcf dependency-injection unity-container

我有一个问题。我有WPF项目与Unity DI容器,库项目和WCF项目的通用解决方案。在WCF库中是从数据库读取的服务。 UserManager在构造函数中设置,但这有错误。

我的问题是必须在解决方案中的每个项目中使用统一容器,或者我可以配置一个统一容器,以便在整个解决方案中找到依赖关系?

我的容器配置如下:

var container = new UnityContainer();
container.RegisterTypes(
    AllClasses.FromLoadedAssemblies(), 
    WithMappings.FromMatchingInterface, 
    WithName.Default);

但它不解决WCF应用程序中的依赖项。

1 个答案:

答案 0 :(得分:0)

  

必须在解决方案中的每个项目中使用统一容器,或者我可以配置一个统一容器,以便在整个解决方案中找到依赖关系吗?

都不是。您通常会让每个启动项目创建自己的容器,并配置其依赖项。由于您有多个启动项目(Web服务和桌面应用程序),因此您将在多个位置配置容器。这与Composition Root的概念有关。另请查看Composition Root reuse了解更多详情。