多个项目中的 DI Unity - 最佳实践
DI Unity in multiple projects - best practises
我有一个问题。我在通用解决方案中有带有 Unity DI 容器、库项目和 WCF 项目的 WPF 项目。在 WCF 库中是从数据库读取的服务。 UserManager 在构造函数中设置,但这有一个错误。
我的问题是 unity 容器必须在解决方案的每个项目中,或者我可以配置一个 unity 容器以便它在整个解决方案中找到依赖项?
我的容器配置如下:
var container = new UnityContainer();
container.RegisterTypes(
AllClasses.FromLoadedAssemblies(),
WithMappings.FromMatchingInterface,
WithName.Default);
但它不解决 WCF 应用程序中的依赖关系。
must unity container be in each project in solution or I can configure one unity container so that it finds dependencies in the whole solution?
都没有。您通常会让每个启动项目创建自己的容器,并配置其依赖项。由于您有多个启动项目(Web 服务和桌面应用程序),因此您将在多个位置配置容器。这与Composition Root. Also look at Composition Root reuse的概念有关,更详细。
我有一个问题。我在通用解决方案中有带有 Unity DI 容器、库项目和 WCF 项目的 WPF 项目。在 WCF 库中是从数据库读取的服务。 UserManager 在构造函数中设置,但这有一个错误。
我的问题是 unity 容器必须在解决方案的每个项目中,或者我可以配置一个 unity 容器以便它在整个解决方案中找到依赖项?
我的容器配置如下:
var container = new UnityContainer();
container.RegisterTypes(
AllClasses.FromLoadedAssemblies(),
WithMappings.FromMatchingInterface,
WithName.Default);
但它不解决 WCF 应用程序中的依赖关系。
must unity container be in each project in solution or I can configure one unity container so that it finds dependencies in the whole solution?
都没有。您通常会让每个启动项目创建自己的容器,并配置其依赖项。由于您有多个启动项目(Web 服务和桌面应用程序),因此您将在多个位置配置容器。这与Composition Root. Also look at Composition Root reuse的概念有关,更详细。