防止用户界面层依赖于数据访问层

时间:2018-08-17 14:11:41

标签: c# dependency-injection simple-injector

我在.NET中有3个项目

  • DAL(数据访问层)
  • UI(用户界面)
  • BI(逻辑)

DAL调用BI(服务) BI将DAL(存储库)称为

我的UI项目在(global.asax)中的问题 -我打电话给喷油器注册我的课程

 public Application_Start()
 {
              ......
    container.Register<IService1, Service1Impl>();
    container.Register<IService2, Service2Impl>();
 }

但是我如何在不使用UI Project的情况下注册DAL类

否则我必须在我的UI项目中添加我的DAL项目

2 个答案:

答案 0 :(得分:1)

Application_Start不是用户界面的一部分。 Application_Start组成根的一部分,它是其自己的一层。您只隐式地决定将组成根和用户界面层都放在同一程序集中。

有关此的更多详细信息,请参见本文:Understanding the Composition Root

答案 1 :(得分:0)

您选择了洋葱架构,输入点是UI项目。您的UI项目必须具有指向DAL和BI项目的链接。

如果要在应用程序中创建独立的模块,则可以选择微服务架构。