3

想象一下,我的解决方案中有四个项目:

  • UI <- 启动项目
  • 领域
  • 存储库
  • 引导

项目UI依赖于DomainBoot项目。

Boot项目依赖于 DI 容器配置的DomainRepository项目。

如果我在 ASP.NET Core 5 中编写此代码,即使我在项目中没有依赖项,UI代码也可以访问和实例化类。RepositoryUI

在 .NET Framework 4.8 中,这并没有发生。这种行为使隔离变得不可能,因此这种配置中的依赖倒置原则很容易被破坏。

有没有办法在 ASP.NET Core 5 中关闭这种行为?

4

1 回答 1

2

这是 的默认行为.NET Core,如果您想更改它并且不允许间接UI访问图层,您可以在文件Repository中设置如下:.csproj

 <ProjectReference Include="..\Boot\Boot.csproj" >
  <ExcludeAssets>all</ExcludeAssets>
</ProjectReference>

要了解更多信息,请查看以下链接 链接

于 2021-05-17T12:15:07.363 回答