2017-01-03 4 views
1

Im в ситуации, когда у меня есть некоторый код, который запускается после запуска, но перед контроллером, потому что Servicefabric обычно инициализирует надежные коллекции после того, как данные были загружены и настроены (например, запуск завершен).Инъекция зависимостей MVC COre с помощью сервисной ткани получает услуги после запуска и перед контроллером

Вопрос в том, как получить доступ к зависимым инъецированным службам после запуска и перед контроллером (например, без httpcontext), не запустив его в какой-то грязный жесткий тест?

Другой вариант - это очень грязная инициализация конструктора. Кто-нибудь еще имеет лучшие идеи?

ответ

0

У меня обычно есть глобальный контейнер, который я устанавливаю перед запуском, и добавляю в конструктор через webBuilder.ConfigureServices (servicesAction). Запуск остается светлым.

Затем я использую .AddSingleton с заводским методом для поздней инициализации коллекций SF. (Я также использовал AddTransient с Func, который сохраняет инициализацию коллекции до успеха, а затем сохраняет ее).