|
4 / 4 / 2
Регистрация: 29.10.2015
Сообщений: 76
|
||||||
Как в случае с Dependency Injection внедрять отдельный экземпляр некоторого класса только лишь для одного другого класса10.01.2018, 12:08. Показов 1572. Ответов 1
Метки нет (Все метки)
Здравствуйте, пытаюсь понять как же всё таки правильно использовать Dependency Injection в случае c ASP.NET Web Api2 и Entity Framework 6 (у меня в проекте Autofac, но это неважно).
У меня каркас такой, что в контроллеры внедряются классы-сервисы, а уже в них DbContext (не стал выделять IDbContext, так как DbContext это по сути тоже самое). Допустим есть три класса, использующие DbContext: OrderService, UserService и некий EstimateService. В моей логике первые два из них должны использовать один и тот же экземпляр DbContext, а третий (EstimateService) работает параллельно и должен иметь отдельный DbContext, чтобы спокойно параллельно обращаться к базе, при чём даже после обработки результата действия контроллера и отправки ответа (когда "заявка" создана, по ней запускается некий параллельный процесс рассчёта доп.данных). В этой ситуации я не допонял какой тип жизненного цикла объектов правильно использовать? Сейчас у меня, получается, OrderService и UserService получают один и тот же экземпляр DbContext "за кулисами" через InstancePerApiRequest(), а для EstimateService приходится прямо в контроллере создавать отдельный экземпляр DbContext. Мне кажется это не очень правильным создавать экземпляр DbContex прямо в контроллере. Подскажите, как средствами IoC-контейнера задать возможность автоматически для некоторого сервиса (у меня это estimateSerivce) выделять отдельный экземпляр DbContext? Можно на примере любого контейнера. То есть я хочу, чтобы по умолчанию для всех классов был один и тот же экземпляр DbContext (один на запрос), но именно для некоторого особенного класса - отдельный экземпляр DbContext. Вот как выглядит сейчас конструктор контроллера:
0
|
||||||
| 10.01.2018, 12:08 | |
|
Ответы с готовыми решениями:
1
Создать экземпляр одного класса в Main, и передать его в экземпляр другого класса
Экземпляр класса как входные данные метода другого класса |
|
|
|
| 10.01.2018, 17:29 | |
|
http://autofaccn.readthedocs.i... d-services
собственно, регаешь два и более с разными именами и где нужно -- подключаешь по имени. для конструктора https://stackoverflow.com/ques... -injection
1
|
|
| 10.01.2018, 17:29 | |
|
Помогаю со студенческими работами здесь
2
Как вызвать из одного класса (для метода типа void) метод типа boolean другого класса? Можно ли как-то получить из одного класса исходный код другого класса? Как переместить из стека одного класса в массив другого класса? Массив объектов одного класса как поле другого класса Разрешить доступ к методу класса только для другого класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|