Как стать автором
Обновить

Комментарии 5

Для того, чтобы синглтон создавался незамедлительно при старте приложения

А зачем создавать синглтон незамедлительно при старте приложения?

В зависимости от типа запуска приложения (Debug или Release), подключаем ту или иную политику в файле Program.cs между var app = builder.Build(); и app.Run();:

А вы про environments в ASP.NET (Core/5+) не слышали?..

А зачем создавать синглтон незамедлительно при старте приложения?

Чтобы он выполнял свои фоновые задачи независимо от Web Api. Например, при старте приложения он может поднять соединение с внешней системой и обрабатывать ее события.

А вы про environments в ASP.NET (Core/5+) не слышали?

Слышал. А что запрещает мне использовать директивы препроцессора? Я хочу видеть, какой именно кусок кода будет работать в данный момент и не хочу, чтобы компилировался не нужный в этот момент код. В чем преимущество использования IsDevelopment() в данной ситуации?

Чтобы он выполнял свои фоновые задачи независимо от Web Api.

Ровно для этого сделаны IHostedService.

В чем преимущество использования IsDevelopment() в данной ситуации?

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

Различные варианты жизненных циклов внедряемых зависимостей отлично описаны в документации, приведу только одну, не очевидную, на первый взгляд, ситуацию. Если требуется создать singleton

Чтобы он выполнял свои фоновые задачи независимо от Web Api. Например, при старте приложения он может поднять соединение с внешней системой и обрабатывать ее события.

Такие заявления заставляют сомневаться в компетенции.

А ссылки вида "документация", которые ведут на метанит , ещё усиливают сомнения

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории