J'essaie d'étendre mes services par requête, mais mes services injectés semblent toujours être limités au conteneur parent/racine, et les requêtes suivantes voient le état d'une demande précédente.Configurer par requête/conteneur imbriqué StructureMap utilisant le noyau asp.net
J'ai installé un conteneur StructureMap personnalisé dans ma classe de démarrage
// 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>();
Inscrivez-vous un service dans un registre comme;
For<ITest>().Use<Test>().ContainerScoped();
Puis wiredup le middleware suivant
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);
}
Tous les pointeurs sur ce que je suis absent? Merci