【问题标题】:Configure per request / nested container StructureMap using asp.net core使用 asp.net 核心配置每个请求/嵌套容器 StructureMap
【发布时间】:2016-09-19 15:02:24
【问题描述】:

我正在尝试根据每个请求来确定我的服务范围,但我注入的服务似乎总是被限制在父/根容器的范围内,后续请求会看到上一个请求的状态。

我已经在我的启动类中设置了一个自定义 StructureMap 容器

// Wireup the container
Container = new Container();
Container.Configure(config =>
{
    // register the dotnet framework registered services into our container
    config.Populate(services);

    // Import all the registries
    config.Scan(scanner =>
    {
        scanner.TheCallingAssembly();
        scanner.LookForRegistries();
    });
});

return Container.GetInstance<IServiceProvider>();

将服务注册为;

For<ITest>().Use<Test>().ContainerScoped();

然后连线以下中间件

var container = serviceProvider.GetRequiredService(typeof(IContainer)) as IContainer;
if (container != null)
{
    using (var requestContainer = container.GetNestedContainer())
    {
        context.RequestServices = requestContainer.GetInstance<IServiceProvider>();
        await _next.Invoke(context);
    }
}
else
{
    await _next.Invoke(context);
}

关于我缺少什么的任何指针? 谢谢

【问题讨论】:

    标签: asp.net-core structuremap4


    【解决方案1】:

    无需自己连接RequestServices 属性。 ASP.NET 主机已经为您完成了这项工作。只需从现有的 RequestServices 提供程序中解决您需要的内容即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-20
      • 2022-06-28
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多