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

Preventing the User Interface Layer from Depending on the Data Access Layer

提问人:sam it 提问时间:8/17/2018 最后编辑:Stevensam it 更新时间:8/17/2018 访问量:216

问:

我在 .NET 中有 3 个项目

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

DAL 调用 BI(服务) BI 调用 DAL(存储库)

我在(global.asax)的UI项目中的问题 - 我调用我的注入器来注册我的类

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

但是我如何在不调用UI项目的情况下注册我的DAL类

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

C# 依赖注入 简单注入器

评论

0赞 qujck 8/17/2018
标准方法是引用组合根目录中的所有项目
0赞 Steven 8/17/2018
要对 DI 和应用程序设计有扎实的了解,请阅读本书

答:

1赞 Steven 8/17/2018 #1

不是用户界面的一部分。是 Composition Root 的一部分,Composition Root 是它自己的一个层。您只是隐式决定将组合根和用户界面层放在同一个程序集中,这很好。Application_StartApplication_Start

有关此内容的更多详细信息,请参阅以下文章:了解组合根

0赞 PWND 8/17/2018 #2

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

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