public async Task Invoke(HttpContext httpContext) { if (httpContext == null) { throw new ArgumentNullException(nameof(httpContext)); } var existingFeature = httpContext.Features.Get<IServiceProvidersFeature>(); // All done if request services is set if (existingFeature?.RequestServices != null) { await _next.Invoke(httpContext); return; } using (var feature = new RequestServicesFeature(_services)) { try { httpContext.Features.Set<IServiceProvidersFeature>(feature); await _next.Invoke(httpContext); } finally { httpContext.Features.Set(existingFeature); } } }
public async Task Invoke(HttpContext httpContext) { if (httpContext == null) { throw new ArgumentNullException(nameof(httpContext)); } var existingFeature = httpContext.Features.Get <IServiceProvidersFeature>(); // All done if request services is set if (existingFeature?.RequestServices != null) { await _next.Invoke(httpContext); return; } using (var feature = new RequestServicesFeature(_services)) { try { httpContext.Features.Set <IServiceProvidersFeature>(feature); await _next.Invoke(httpContext); } finally { httpContext.Features.Set(existingFeature); } } }