【问题标题】:How to limit the accessibility among different projects in .net core?如何限制 .net core 中不同项目之间的可访问性?
【发布时间】:2020-07-15 19:20:42
【问题描述】:

如果我有三个这样的项目:

  1. WebApi(asp.net web core)
  2. Shared.Infrastructure(包含通用存储库)
  3. DAL(使用 EF 核心)

第二个项目有第三个项目的引用。 第一个项目(api)有第二个项目的引用。

我观察到的是:

第三个项目中的所有东西都可以在第一个项目中访问 (api)包括db context and the EF core


我希望 DAL 在第二个项目中无法访问。我不希望第一个和第三个项目之间存在这种可转移的依赖关系,因为现在API 中的任何人都可以跳过第二个项目中的 repo 并直接使用第三个项目(DAL)!

【问题讨论】:

  • 您的 API 是容器,因此它必须了解所有类才能构建依赖关系图。这是基本的依赖注入。

标签: c# asp.net-core .net-core dependency-injection asp.net-core-webapi


【解决方案1】:

一种方法是编辑Shared.Infrastructure.csproj,以便将DAL 项目设置为PrivateAsset

<ProjectReference Include="path-to-DAL.csproj">
  <PrivateAssets>all</PrivateAssets>
</ProjectReference>

请参阅 PrivateAssets here 上的参考资料。

【讨论】:

    猜你喜欢
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 2013-04-01
    • 2019-05-19
    相关资源
    最近更新 更多