我有一个问题。我有WPF项目与Unity DI容器,库项目和WCF项目的通用解决方案。在WCF库中是从数据库读取的服务。 UserManager在构造函数中设置,但这有错误。
我的问题是必须在解决方案中的每个项目中使用统一容器,或者我可以配置一个统一容器,以便在整个解决方案中找到依赖关系?
我的容器配置如下:
var container = new UnityContainer();
container.RegisterTypes(
AllClasses.FromLoadedAssemblies(),
WithMappings.FromMatchingInterface,
WithName.Default);
但它不解决WCF应用程序中的依赖项。
答案 0 :(得分:0)
必须在解决方案中的每个项目中使用统一容器,或者我可以配置一个统一容器,以便在整个解决方案中找到依赖关系吗?
都不是。您通常会让每个启动项目创建自己的容器,并配置其依赖项。由于您有多个启动项目(Web服务和桌面应用程序),因此您将在多个位置配置容器。这与Composition Root的概念有关。另请查看Composition Root reuse了解更多详情。