gpt4 book ai didi

visual-studio - 防止 .NET Core 嵌套项目引用

转载 作者:行者123 更新时间:2023-12-03 15:03:50 25 4
gpt4 key购买 nike

鉴于我有一个 .NET Core 2.0 应用程序的情况
我还有一个 Web 程序集、一个业务程序集和一个 DataAccess 程序集。

我不希望 Web 程序集直接引用我的 DataAccess 程序集(其中包含我的 Entity Framework 内容)。这是为了防止 Web 程序集采取快捷方式并直接与 DbContext 对话。

所以我有我的 Web 引用业务和业务引用 DataAccess。

现在由于一些奇怪的原因,在我的 Web 项目的 Controller 中,我仍然可以直接访问 DbContext ,因为这在我的 DataAccess 项目中被标记为 public,显然它是通过某种形式的嵌套引用提供给 Web 项目的。

我想一个类似的主题是这个:https://github.com/aspnet/Mvc/issues/6635但是我在 Stack Overflow 上找不到太多关于这个主题的信息。

有没有什么优雅的方法可以防止顶级项目访问这些嵌套的依赖项?

最佳答案

为了防止您的 DataAccess 层从 Web 层可见,您应该将 PrivateAssets 元素放在业务层的 .csproj 文件中。就像下面的代码一样。

<ItemGroup>
<ProjectReference Include="..\GiveAway.Data\GiveAway.Data.csproj">
<PrivateAssets>all</PrivateAssets>
</ProjectReference>
</ItemGroup>

在这里您可以阅读有关 PrivateAssets 元素的更多信息: https://docs.microsoft.com/en-us/dotnet/core/tools/csproj

关于visual-studio - 防止 .NET Core 嵌套项目引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46216375/

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