想象我的解决方案中有四个项目:
UI
项目依赖于Domain
和Boot
项目。
Boot
项目依赖于 DI 容器配置的 Domain
和 Repository
项目。
如果我在 ASP.NET 5 中编写此代码,
UI
代码可以访问并实例化 Repository
类,即使我在 UI
项目中没有依赖项。
在 .NET Framework 4.8 中,这种情况没有发生。这种行为使得隔离变得不可能,因此这种配置中的依赖倒置原则很容易被破坏。
有办法在 ASP.NET 5 中关闭这种行为吗?
这是
.NET Core
的默认行为,如果您想更改此设置并且不允许UI
间接访问Repository
层,您可以在.csproj
文件中进行如下设置:
<ProjectReference Include="..\Boot\Boot.csproj" >
<ExcludeAssets>all</ExcludeAssets>
</ProjectReference>
要了解更多信息,请查看以下链接 链接