在分层架构中,应用程序层如何了解Web URL?

leu*_*uim 6 .net c# onion-architecture clean-architecture .net-5

我目前正在开发一个使用分层架构(Web /应用程序/基础设施/域)的.NET 5应用程序。如果我要遵循洋葱/干净架构模式,依赖关系应该仅朝一个方向流动,例如:

Web -> 应用程序 -> 基础设施 -> 域

我现在发现自己需要从应用程序层发送几封包含特定前端 URL 的电子邮件。这意味着应用程序层将了解 Web 层,从而打破依赖流。

示例用例流程如下:

  1. 用户发出请求,由 Web 层的控制器处理
  2. 控制器调用应用程序层的处理程序
  3. 应用程序层使用基础设施层的电子邮件服务发送电子邮件

在步骤 #3 中,我位于应用程序层,但需要 Web URL 来构建电子邮件正文。

我该如何解决这个问题?

Zdr*_*nev 0

考虑在 Web 基础设施级别(例如网关或负载均衡器)配置“众所周知的 url”,以便您可以在电子邮件中包含“mycompany.com/user-action-1”,并将其转换为 Web 应用程序的正确端点。