gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 14:58:02 25 4
gpt4 key购买 nike

假设我的解决方案中有四个项目:

  • UI <- 启动项目
  • 域名
  • 存储库
  • 开机

UI 项目依赖于 DomainBoot 项目。

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

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

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

有一种方法可以在 ASP.NET Core 5 中关闭该行为吗?

最佳答案

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

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

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

关于asp.net-core - 依赖倒置原则。为什么我可以访问 ASP.NET Core 5 中非直接引用项目的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67563422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com