0
요청별로 서비스 범위를 지정하려고합니다. 그러나 삽입 된 서비스는 항상 부모/루트 컨테이너로 범위가 지정된 것으로 보이며 이후 요청은 이전 요청에서 상태.asp.net 코어를 사용하여 구조 요청/중첩 컨테이너를 구성하십시오.
내 시작 클래스
// 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>();
같은 레지스터에 서비스를 등록에서 설정을 사용자 정의 StructureMap 컨테이너를했습니다;
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);
}
내가 놓친 게 무엇인지에 모든 포인터? 감사합니다.