Как ограничить доступность разных проектов в. net ядре? - PullRequest
0 голосов
/ 03 апреля 2020

Если у меня есть, например, три таких проекта:

  1. WebApi (asp. net веб-ядро)
  2. Shared.Infrastructure (Содержит Generi c репо )
  3. DAL (Использовать EF Core)

Второй проект имеет ссылку на третий проект. и первый проект (API) имеет ссылку на второй проект.

То, что я наблюдал, это:

Все вещи в третьем проекте доступны в первом проекте ( api) включая db context and the EF core!


Я хочу, чтобы DAL был недоступен, ожидайте от второго проекта. Я не хочу эту переносимую зависимость между первым и третьим проектом, потому что теперь любой в API может пропустить репо во втором проекте и напрямую использовать третий проект (DAL)!

1 Ответ

1 голос
/ 04 апреля 2020

Один из способов сделать это - отредактировать Shared.Infrastructure.csproj, чтобы проект DAL был установлен как PrivateAsset:

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

См. Ссылку на PrivateAssets здесь .

...