【发布时间】:2020-11-09 00:15:11
【问题描述】:
我正在构建 Blazor WASM 应用程序。
应用程序正在运行,但我现在希望将项目拆分为合理的自包含项目,但在解决如何实现依赖注入而不在项目之间创建循环依赖时遇到问题。
Projects:
App.Client - UI Razor Pages
App.Server - Main project, controllers, defines interfaces
App.Shared - Shared models between Client & Server
App.Data - Implements repositories, unit of work, Db Context, migrations
我遇到的问题是 App.Data 项目依赖于 App.Server 项目来实现它所需的接口,但是我不知道如何在 start.cs 文件中配置依赖项App.Server 项目,因为它不能依赖于 App.Data 项目。
【问题讨论】:
-
通常你会把你的接口放在一个领域层,比如 App.Domain。 App.Data 将依赖于 App.Domain,而 App.Server 也将依赖于 App.Domain。然后,您的 app.server 还可以引用 app.Data 以便您进行注册(这没关系)。或者您可以使用反射作为注册服务的一种方式,而无需 App.Server 引用 App.Data。
-
值得一提的是,App.Domain 不会依赖任何东西。所有依赖项都会指向内部。
-
我喜欢这个Onion View。
标签: asp.net-core dependency-injection shared-libraries blazor