Ниже приведена архитектура, которую я хочу достичь sh, однако я не уверен относительно того, как go узнать об этом. Примечание. В настоящее время я обновляю решения своей компании с Net MVC 4,7 до Net Core 3.1, поэтому я открыт для предложений.
Базовое веб-приложение (WebA)
- Основной сайт
- Предназначен для регистрации LibA, LibB и LibXYZ в качестве службы.
Библиотека / Утилита (LibA)
- Эта библиотека используется на нескольких сайтах (10 +)
- Имеет CompanyDbContext для базовых операций, таких как пользователи, форумы, приложения и т. Д. c.
- Содержит общие операции и / или утилиты.
Libary Auth (LibB)
- Содержит ряд утилит для проверки прежде всего пользовательские разрешения.
- Для работы этой библиотеки требуется LibA.
Библиотечный модуль "Project Specifi c" (LibXYZ)
- Содержит спецификация проекта c DbContext, который использует userId из LibA's DbContext.
- Эта библиотека требует LibA для функционирования
Моя проблема в том, что я могу легко получить доступ к различным библиотекам из контроллеров WebA через инъекции зависимости. Однако мне нужно внедрить LibA в LibB и LibXYZ, где и возникает проблема.
Я мог бы просто переместить DbContext в WebA, однако это вызывает серьезные штрафы, когда происходит изменение в контексте для ProjectA, поскольку затем его необходимо смягчить и во всех других проектах. В то время как с текущей настройкой я сохраняю разумное «Разделение проблем».
Если бы я просто создал экземпляр LibA в ie LibB, это означало бы, что LibA будет создаваться несколько раз во время запроса.