【发布时间】:2021-07-02 14:53:45
【问题描述】:
我目前正在开发一个使用分层架构(Web/应用程序/基础架构/域)的 .NET 5 应用程序。如果我要遵循洋葱/干净架构模式,则依赖项应该只向一个方向流动,例如:
Web -> 应用程序 -> 基础设施 -> 域
我现在发现自己需要从应用层发送几封包含特定前端 URL 的电子邮件。这意味着Application层会知道Web层,打破依赖流。
一个示例用例流程是:
- 用户发出请求,由 Web 层中的控制器处理
- 控制器调用应用层的处理程序
- 应用层使用来自基础设施层的电子邮件服务来发送电子邮件
在第 3 步中,我在应用层,但需要 Web URL 来构建电子邮件正文。
我该如何解决这个问题?
【问题讨论】:
-
网址实际上只是数据。这与对 Web 的依赖不同,除非您只能通过调用 Web 来获取它们
-
如果您需要内层中的外层信息,请通过调用从外层到内层将信息从外层移动到内层。
-
您要么需要通过层向下传递它,要么将其存储在
appsettings.json以获取更多信息check this -
@Crowcoder 我猜是这样,尽管能够从它的方法中解析控制器 URL 以防万一路由发生变化会很好,所以一切都会按预期继续工作。
-
@Ralf 我也想到了这一点,但有时通过几种不会使用它的方法向下传递数据似乎并不理想。会考虑一下,谢谢。
标签: c# .net .net-5 clean-architecture onion-architecture