首页 > 解决方案 > 用于非 Web 项目的 Ninject InRequestScope

问题描述

我的应用程序是一个从队列中读取并处理消息的微服务。它没有 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 项目的包,而我的不是。

标签: c#ninject

解决方案


推荐阅读