2016-09-19 12 views
0

Я пытаюсь охватить мои службы по каждому запросу, но мои внедренные службы всегда, как представляется, привязаны к контейнеру родителя/корня, а последующие запросы видят из предыдущего запроса.Настроить для каждого запроса/вложенного контейнера StructureMap с использованием ядра asp.net

я установка пользовательской 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(); 

Затем wiredup следующее промежуточное программное

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); 
} 

Все указатели, как к тому, что мне не хватает? Спасибо

ответ

1

Не нужно подключать RequestServices. Хост ASP.NET уже делает это за вас. Просто решите, что вам нужно от существующего провайдера RequestServices.

 Смежные вопросы

  • Нет связанных вопросов^_^