В ASP.NET Core 2.0 есть способ добавить фоновые задачи путем реализации интерфейса IHostedService (см. Https://docs.microsoft.com/en-us/aspnet/core/fundamentals/hosted-services?view=aspnetcore- 2.0). Следуя этому руководству, я смог заставить его работать, зарегистрировав его в контейнере ASP.NET Core. Моя цель - читать сообщения из очереди и обрабатывать задания в фоновом режиме; сообщение отправляется в очередь (через действие контроллера), а затем обрабатывается в фоновом режиме через определенный интервал времени.
// Not registered in SimpleInjector
services.AddSingleton<IHostedService, MyTimedService>(); 
 Когда я помещаю эту регистрацию в контейнер ASP.NET Core, она автоматически запускает процесс при запуске приложения. Однако, когда я регистрирую это в SimpleInjector, сервис не запускается автоматически. Я полагаю, что это так, потому что мы регистрируем контейнер SimpleInjector только с MvcControllers и MvcViewComponents:
// Wire up simple injector to the MVC components
container.RegisterMvcControllers(app);
container.RegisterMvcViewComponents(app);
 Проблема, с которой я сталкиваюсь, заключается в том, что я хочу начать внедрение компонентов реестра из SimpleInjector (например, репозитории, универсальные обработчики с декораторами...) в реализацию IHostedService, как показано ниже:
public class TimedService : IHostedService, IDisposable
{
    private IJobRepository _repo;
    private Timer _timer;
    public TimedService(IJobRepository repo)
    {
        this._repo = repo;
    }
    ...
    ...
    ...
}
  Так как IHostedService зарегистрирован в ASP.NET Core, а не в Simple Injector, я получаю следующую ошибку при запуске синхронизированной фоновой службы:
Необработанное исключение: System.InvalidOperationException: невозможно разрешить службу для типа "Optimization.Core.Interfaces.IJobRepository" при попытке активировать "Optimization.API.BackgroundServices.TimedService".
 Итак, мой вопрос: как лучше всего реализовать фоновые задачи в Simple Injector? Требует ли это отдельного пакета интеграции, чем стандартная интеграция MVC? Как я могу ввести свои регистрации Simple Injector в IHostedService? Если бы мы могли автоматически запустить службу после регистрации в Simple Injector, я думаю, что это решило бы эту проблему.
Спасибо за любые ссылки здесь и за любые советы на эту тему! Я мог бы сделать что-то не так. Мне очень понравилось использовать Simple Injector в прошлом году.