public override async Task ProcessRequestAsync(HttpContext httpContext)
        {
            // Create Request
            var request = new AspNetRequest(httpContext);

            this.container.Inject <IRequest>(request, Lifecycle.HttpContextOrExecutionContextLocal);

            // Create Response
            var response = new AspNetResponse(httpContext);

            this.container.Inject <IResponse>(response, Lifecycle.HttpContextOrExecutionContextLocal);

            // Create a pipeline context
            var pipelineContext = new PipelineContext(request, response);

            this.container.Inject(pipelineContext, Lifecycle.HttpContextOrExecutionContextLocal);

            // route the application
            await this.applicationRouter.RouteApplication(pipelineContext);
        }
        public override async Task ProcessRequestAsync(HttpContext httpContext)
        {
            // Create Request
            var request = new AspNetRequest(httpContext);

            this.container.Inject <IRequest>(request, ServiceLifetime.Scoped);

            // Create Response
            var response = new AspNetResponse(httpContext);

            this.container.Inject <IResponse>(response, ServiceLifetime.Scoped);

            // Create a pipeline context
            var pipelineContext = new PipelineContext(request, response);

            this.container.Inject(pipelineContext, ServiceLifetime.Scoped);

            // route the application
            await this.applicationRouter.RouteApplication(pipelineContext);
        }