WinForms N-Tier应用程序与DI,仓库和
本文关键字:DI N-Tier 应用程序 WinForms | 更新日期: 2023-09-27 18:03:37
我正在构建一个简单的winforms应用程序,我使用n层架构,依赖注入(简单注入器),实体框架代码优先,存储库和工作单元模式。
- UI层。
- 。
- 业务逻辑层。
- 业务对象"管理器"(类公开业务流程)。
- 数据访问层
- 库。
- 数据库上下文。
基本上,我知道我可以在应用程序的入口点(Program.cs)的容器上注册对象,但这只适用于从UI访问的对象,这排除了数据访问层对象。
那么,我如何从业务逻辑层注册对象,因为它是一个类库。
您需要区分依赖项和引用。
你说你的UI不应该依赖于你的DataAccessLayer是正确的。但这意味着它不应该硬连接到SQL Server代码(举个例子)。但这并不意味着你不能引用那个项目。
要解决您的问题,只需从您的UI(这将是您的应用程序的入口点)引用所有项目。
事实是,如果你像这样创建引用:UI => Business Logic => Data Access,你也从UI引用了数据层,只是间接的。
我已经写了一篇文章,详细解释了这一点:
https://www.kenneth-truyers.net/2013/05/12/the-n-layer-myth-and-basic-dependency-injection/