【发布时间】:2016-09-30 10:41:03
【问题描述】:
我有一个问题。我在通用解决方案中有带有 Unity DI 容器、库项目和 WCF 项目的 WPF 项目。在 WCF 库中是从数据库读取的服务。 UserManager 在构造函数中设置,但是这有一个错误。
我的问题是统一容器必须在解决方案中的每个项目中,或者我可以配置一个统一容器,以便它在整个解决方案中找到依赖关系?
我的容器配置如下:
var container = new UnityContainer();
container.RegisterTypes(
AllClasses.FromLoadedAssemblies(),
WithMappings.FromMatchingInterface,
WithName.Default);
但它不解决 WCF 应用程序中的依赖关系。
【问题讨论】:
-
你只需要一个容器。
-
谢谢。整个解决方案只有一个容器?我的容器配置如下: var container = _container ?? (_container = new UnityContainer()); container.RegisterTypes(AllClasses.FromLoadedAssemblies(), WithMappings.FromMatchingInterface, WithName.Default);但不要向 WCF 应用程序注入依赖项。
-
如果 WCF 项目位于远程服务器上,而 WPF 应用程序位于客户端上,那么每一方都需要一个容器。
-
谢谢,这实际上是合乎逻辑的。但是如何为统一配置 WCF 应用程序呢?在WPF中在App.xaml.cs中创建UnityContainer实例,WCF在哪里配置容器?
-
这篇 MSDN 文章展示了如何在 WCF 中使用 Unity:msdn.microsoft.com/en-us/library/hh323725(v=vs.100).aspx
标签: wpf wcf dependency-injection unity-container