我试图弄清楚分离应该如何与 ASP.NET 和依赖注入一起工作。
我有四个项目:
- ASP.NET 客户端
- BusinessLogic 类库 (BL)
- 集成类库,调用服务引用
- 共享(接口、模型)
在集成中,我有一个存储库,它调用其他服务。存储库“MyRepository”实现了一个接口“IMyRepository”,该接口放置在 Shared 中,并返回也放置在 Shared 中的对象。
严格来说,我不希望客户对集成项目的引用/依赖,但所有通信都应该通过 BL 进行。
在客户的 Global.asax 中,我使用 Autofac 注册我的类型
var builder = new ContainerBuilder();
builder.RegisterModule(new AutofacWebTypesModule());
builder.RegisterControllers(typeof(MvcApplication).Assembly);
builder.RegisterType<MyRepository>().As<IMyRepository>().InstancePerHttpRequest();
但是,这需要客户端项目引用集成项目以实现 MyRepository。应该是这样吗?
我怎样才能没有客户对集成的引用并保持分离干净?
我的现实世界项目比这规模大得多,所以我试图解开依赖关系。
谢谢你的时间!