Ninject InRequestScope для не веб-проектов - PullRequest
1 голос
/ 11 марта 2020

Мое приложение - это микросервис, который читает из очереди и обрабатывает сообщения. Он не имеет компонента WebAPI.

Каждое сообщение должно иметь собственный набор конкретных экземпляров, настроенный настройкой DI. например, Dbcontext для каждого сообщения, но приложение может обрабатывать несколько сообщений одновременно для разных задач, поэтому у каждого сообщения должен быть свой DbContext.

Анализатор сообщений создает новый блок Ninject для каждого сообщения и вызывает его асинхронно, как это:

using (var block = _kernel.BeginBlock())
{
    var processorInstance = block.Get(processor.MessageProcessorType);

    await processor.CallMessageProcessorAsync(processorInstance, messageBodyBase)
        .ConfigureAwait(false);
}

Как настроить Ninject для предоставления экземпляров объектов с «областями видимости»? Я понимаю, что есть пакет под названием InRequestScope, но он предназначен для проектов WebApi, а мой - нет.

...