AspNet.Hosting.Extensions.Tests.HostingExtensionsTests.InnerServiceCanResolveServicesOutsideIsolationViaHttpContext C# (CSharp) Метод

InnerServiceCanResolveServicesOutsideIsolationViaHttpContext() приватный Метод

private InnerServiceCanResolveServicesOutsideIsolationViaHttpContext ( ) : System.Threading.Tasks.Task
Результат System.Threading.Tasks.Task
        public async Task InnerServiceCanResolveServicesOutsideIsolationViaHttpContext() {
            // Arrange
            var builder = new WebHostBuilder()
                .ConfigureServices(services => {
                    // Allow the isolated environment to resolve
                    // the value service defined at the global level.
                    services.AddScoped(provider => {
                        var accessor = provider.GetRequiredService<IHttpContextAccessor>();
                        var container = (IServiceScope) accessor.HttpContext.Items[typeof(IServiceProvider)];

                        return container.ServiceProvider.GetRequiredService<ValueService>();
                    });
                })

                .Configure(app => {
                    app.Isolate(
                        // Configure the isolated pipeline.
                        map => map.Run(async context => {
                            var service = context.RequestServices.GetRequiredService<ValueService>();

                            await context.Response.WriteAsync(service.Value);
                        }),

                        // Configure the isolated services.
                        services => services.AddSingleton(new ValueService("Dummy")));
                });

            var server = new TestServer(builder);

            var client = server.CreateClient();

            // Act
            var response = await client.GetStringAsync("/");

            // Assert
            Assert.Equal("Dummy", response);
        }