Unity (Dependency Injection) в ASP.NET CORE похож на то, что мы имеем в ASP.NET Framework - PullRequest
1 голос
/ 23 марта 2019

(Это мой первый пост, пожалуйста, успокойтесь) Я недавно работаю с Onion Architecture в ASP.NET Framework, все в порядке, пока мой начальник не скажет мне, что он хочет подобную архитектуру в новом проекте, но на этот раз использую ASP.NET CORE. По сути, ASP.NET CORE может выполнять то же поведение, что и Framework, но у меня проблема с тем, чтобы заставить DI работать как сервис, подобный тому, который определен Jeffrey Palermo . Проблема в том, что ASP.NET CORE уже поддерживает встроенный DI, это приятно, удобно, но теперь я полностью хочу совсем другую глупость. Так что, если у кого-то из вас когда-либо была такая же ситуация, пожалуйста, поделитесь! Большое спасибо.

[UPDATED_1]
Спасибо, @sellotape за твой совет, я еще немного сломаю его. Как я упоминал выше, архитектура определила, что каждая служба (включая DI) должна действовать как ничто иное, как луковый уровень. Это означает, что сам DI не должен зависеть от каркаса (на этот раз встроенный DI ASP.NET CORE)
В этом вся моя проблема, это просто придирчивая идея идти в ногу с архитектурой.

[UPDATED_2]
Допустим, моя структура проекта ASP.NET Framework будет выглядеть следующим образом:

*Onion.sln                        --(project solution)
 - Core                           --(solution folder)
   + Core.ApplicationServices     --(project)
   + Core.ObjectModels            --(project)
   + Core.ObjectServices
 - Infrastructure
   + Infrastructure.Data
   + Infrastructure.Log
   + Infrastructure.Identity
 - Services
 - Libraries
 - DependencyResolver

Как видите, я могу добавить все, что мне нужно, в любой проект, который я хочу, спасибо за DependencyResolver. Такое поведение кажется недопустимым в ASP.NET CORE, потому что для выполнения таких задач вам нужна ссылка целого проекта на другой, потому что встроенный DI-контейнер является только «областью действия проекта». Это означает, что если я хочу внедрить что-то от одного к другому, я создаю тесно связанную между ними, и это не то, для чего живет Dependency Injection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...