依赖倒置原则。为什么我可以访问 ASP.NET 5 中非直接引用项目的类?

问题描述 投票:0回答:1

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

  • 用户界面<- startup project
  • 域名
  • 存储库
  • 启动

UI
项目依赖于
Domain
Boot
项目。

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

如果我在 ASP.NET 5 中编写此代码,

UI
代码可以访问并实例化
Repository
类,即使我在
UI
项目中没有依赖项。

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

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

asp.net-core dependency-injection .net-5 .net-4.8 dependency-inversion
1个回答
2
投票

这是

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.