【发布时间】:2017-01-11 11:32:19
【问题描述】:
我有一个包含多个项目的解决方案 - 类似于以下内容:
- WebAPI
- ICustomerService.cs
- 业务逻辑
- CustomerService.cs
- IDatabaseService.cs
- 数据库访问
- DatabaseService.cs
以前,WebAPI 项目引用了业务逻辑,然后引用了数据库访问。我试图颠倒这个逻辑。
目前,我在我的 WebAPI 项目中使用 Unity 来通过业务逻辑层的实现来解析接口,但是一旦我反转了我的逻辑,以便业务逻辑层具有对 WebAPI 层的引用,Unity 注册不会'没有循环引用就无法工作:
var container = new UnityContainer();
container.RegisterType<ICustomerService, CustomerService>();
GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container);
当我尝试注册我的类型时,ICustomerService 位于顶层项目中,CustomerService 对它是不可见的。
我读过关于有一个单独的项目来容纳统一配置,但这也会创建一个循环引用。我怎样才能做到这一点?
【问题讨论】:
标签: c# asp.net-web-api unity-container