首页 > 解决方案 > .NET Core 对其他项目的引用打破了层隔离

问题描述

我正在使用以下项目构建 .NET Core Web 应用程序:

众所周知,UI 应该只能访问 BLL 项目类,而 BL 项目应该只能访问 DAL 项目类。

因此,我设置了以下内容:

WebApplication1 仅引用了 BLL 项目。BLL 仅引用了 DAL 项目。

在 .NET Framework 4.7(非核心)中,您无法直接从 WebApplication1 访问 DAL 类,除非您明确添加对 DAL 的引用。它很有用,因为这样您就不会意外地直接从 WebApplication1 (UI) 访问 DAL,并且您需要通过 BLL 项目这样做。

当我尝试从 .NET Framework 移植到 .NET Core 时,我发现行为已更改,我无法直接从 WebApplication1 访问 DAL 类,如屏幕截图所示,只需使用“使用 DAL”即可直接添加对 DAL 的引用。 在此处输入图像描述

框架自动将 DAL 的引用显示为“子引用”

框架自动将 DAL 的引用显示为

有人可以解释一下吗?

我想继续“精心设计”的 3 层隔离架构,似乎新的方式打破了这一点。

标签: asp.net-core.net-coreasp.net-core-mvc

解决方案


推荐阅读