Ссылки .NET Core на другие проекты нарушают изоляцию уровня - PullRequest
0 голосов
/ 06 сентября 2018

Я создаю веб-приложение .NET Core, используя следующие проекты:

  • WebApplication1 (UI)

  • BLL

  • DAL

Как все мы знаем, пользовательский интерфейс должен иметь доступ только к классам проекта BLL, а проект BL - только к классам проекта DAL.

Поэтому я настроил следующее:

WebApplication1 имеет ссылку только на проект BLL. BLL имеет ссылку только на проект DAL.

В .NET Framework 4.7 (не Core) вы не можете получить доступ к классам DAL напрямую из WebApplication1, если не добавили ссылку на DAL в явном виде. это полезно, потому что таким образом вы не получите случайный доступ к DAL напрямую из WebApplication1 (UI), и вам потребуется сделать это через проект BLL.

Когда я пытаюсь портировать с .NET Framework на .NET Core, я обнаружил, что поведение изменилось, и я не могу получить доступ к классам DAL напрямую из WebApplication1, как показано на снимке экрана, просто используя "using DAL" без необходимости добавления ссылки непосредственно на DAL. enter image description here

Фреймворк автоматически показывает ссылку на DAL как "дочернюю ссылку

the framework automatically shows a reference to the DAL as a

Может кто-нибудь объяснить об этом больше?

Я хочу продолжать «хорошо спроектированную» трехуровневую изолированную архитектуру, и кажется, что новый способ это сломает.

...