React to hosting
This commit is contained in:
parent
37dc8581de
commit
0db1f1a42f
|
|
@ -12,13 +12,13 @@ namespace RoutingSample.Web
|
||||||
{
|
{
|
||||||
public class Startup
|
public class Startup
|
||||||
{
|
{
|
||||||
|
public void ConfigureServices(IServiceCollection services)
|
||||||
|
{
|
||||||
|
services.AddRouting();
|
||||||
|
}
|
||||||
|
|
||||||
public void Configure(IApplicationBuilder builder)
|
public void Configure(IApplicationBuilder builder)
|
||||||
{
|
{
|
||||||
builder.UseServices(services =>
|
|
||||||
{
|
|
||||||
services.AddRouting();
|
|
||||||
});
|
|
||||||
|
|
||||||
var endpoint1 = new DelegateRouteEndpoint(async (context) =>
|
var endpoint1 = new DelegateRouteEndpoint(async (context) =>
|
||||||
await context
|
await context
|
||||||
.HttpContext
|
.HttpContext
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
using Microsoft.AspNet.RequestContainer;
|
|
||||||
using Microsoft.AspNet.Routing;
|
using Microsoft.AspNet.Routing;
|
||||||
using Microsoft.AspNet.Routing.Logging;
|
using Microsoft.AspNet.Routing.Logging;
|
||||||
using Microsoft.AspNet.Routing.Logging.Internal;
|
using Microsoft.AspNet.Routing.Logging.Internal;
|
||||||
|
|
@ -17,16 +16,13 @@ namespace Microsoft.AspNet.Builder
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly RequestDelegate _next;
|
private readonly RequestDelegate _next;
|
||||||
private readonly IRouter _router;
|
private readonly IRouter _router;
|
||||||
private readonly IServiceProvider _services;
|
|
||||||
|
|
||||||
public RouterMiddleware(
|
public RouterMiddleware(
|
||||||
RequestDelegate next,
|
RequestDelegate next,
|
||||||
IServiceProvider services,
|
|
||||||
ILoggerFactory loggerFactory,
|
ILoggerFactory loggerFactory,
|
||||||
IRouter router)
|
IRouter router)
|
||||||
{
|
{
|
||||||
_next = next;
|
_next = next;
|
||||||
_services = services;
|
|
||||||
_router = router;
|
_router = router;
|
||||||
|
|
||||||
_logger = loggerFactory.CreateLogger<RouterMiddleware>();
|
_logger = loggerFactory.CreateLogger<RouterMiddleware>();
|
||||||
|
|
@ -34,24 +30,21 @@ namespace Microsoft.AspNet.Builder
|
||||||
|
|
||||||
public async Task Invoke(HttpContext httpContext)
|
public async Task Invoke(HttpContext httpContext)
|
||||||
{
|
{
|
||||||
using (RequestServicesContainer.EnsureRequestServices(httpContext, _services))
|
using (_logger.BeginScope("RouterMiddleware.Invoke"))
|
||||||
{
|
{
|
||||||
using (_logger.BeginScope("RouterMiddleware.Invoke"))
|
var context = new RouteContext(httpContext);
|
||||||
|
context.RouteData.Routers.Add(_router);
|
||||||
|
|
||||||
|
await _router.RouteAsync(context);
|
||||||
|
|
||||||
|
if (_logger.IsEnabled(LogLevel.Verbose))
|
||||||
{
|
{
|
||||||
var context = new RouteContext(httpContext);
|
_logger.WriteValues(new RouterMiddlewareInvokeValues() { Handled = context.IsHandled });
|
||||||
context.RouteData.Routers.Add(_router);
|
}
|
||||||
|
|
||||||
await _router.RouteAsync(context);
|
if (!context.IsHandled)
|
||||||
|
{
|
||||||
if (_logger.IsEnabled(LogLevel.Verbose))
|
await _next.Invoke(httpContext);
|
||||||
{
|
|
||||||
_logger.WriteValues(new RouterMiddlewareInvokeValues() { Handled = context.IsHandled });
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!context.IsHandled)
|
|
||||||
{
|
|
||||||
await _next.Invoke(httpContext);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@
|
||||||
"warningsAsErrors": true
|
"warningsAsErrors": true
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.AspNet.RequestContainer": "1.0.0-*",
|
|
||||||
"Microsoft.AspNet.Http.Extensions": "1.0.0-*",
|
"Microsoft.AspNet.Http.Extensions": "1.0.0-*",
|
||||||
"Microsoft.Framework.Logging.Interfaces": "1.0.0-*",
|
"Microsoft.Framework.Logging.Interfaces": "1.0.0-*",
|
||||||
|
"Microsoft.Framework.OptionsModel": "1.0.0-*",
|
||||||
"Microsoft.Framework.NotNullAttribute.Internal": { "type": "build", "version": "1.0.0-*" }
|
"Microsoft.Framework.NotNullAttribute.Internal": { "type": "build", "version": "1.0.0-*" }
|
||||||
},
|
},
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ namespace Microsoft.AspNet.Routing
|
||||||
};
|
};
|
||||||
|
|
||||||
var router = new TestRouter(isHandled);
|
var router = new TestRouter(isHandled);
|
||||||
var middleware = new RouterMiddleware(next, httpContext.ApplicationServices, loggerFactory, router);
|
var middleware = new RouterMiddleware(next, loggerFactory, router);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
await middleware.Invoke(httpContext);
|
await middleware.Invoke(httpContext);
|
||||||
|
|
@ -76,7 +76,7 @@ namespace Microsoft.AspNet.Routing
|
||||||
};
|
};
|
||||||
|
|
||||||
var router = new TestRouter(isHandled);
|
var router = new TestRouter(isHandled);
|
||||||
var middleware = new RouterMiddleware(next, httpContext.ApplicationServices, loggerFactory, router);
|
var middleware = new RouterMiddleware(next, loggerFactory, router);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
await middleware.Invoke(httpContext);
|
await middleware.Invoke(httpContext);
|
||||||
|
|
@ -112,7 +112,7 @@ namespace Microsoft.AspNet.Routing
|
||||||
|
|
||||||
var router = new TestRouter(isHandled);
|
var router = new TestRouter(isHandled);
|
||||||
|
|
||||||
var middleware = new RouterMiddleware(next, httpContext.ApplicationServices, loggerFactory, router);
|
var middleware = new RouterMiddleware(next, loggerFactory, router);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
await middleware.Invoke(httpContext);
|
await middleware.Invoke(httpContext);
|
||||||
|
|
@ -156,7 +156,7 @@ namespace Microsoft.AspNet.Routing
|
||||||
};
|
};
|
||||||
|
|
||||||
var router = new TestRouter(isHandled);
|
var router = new TestRouter(isHandled);
|
||||||
var middleware = new RouterMiddleware(next, httpContext.ApplicationServices, loggerFactory, router);
|
var middleware = new RouterMiddleware(next, loggerFactory, router);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
await middleware.Invoke(httpContext);
|
await middleware.Invoke(httpContext);
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
"Microsoft.AspNet.Http.Core": "1.0.0-*",
|
"Microsoft.AspNet.Http.Core": "1.0.0-*",
|
||||||
"Microsoft.AspNet.Routing": "1.0.0-*",
|
"Microsoft.AspNet.Routing": "1.0.0-*",
|
||||||
"Microsoft.AspNet.Testing": "1.0.0-*",
|
"Microsoft.AspNet.Testing": "1.0.0-*",
|
||||||
|
"Microsoft.Framework.DependencyInjection": "1.0.0-*",
|
||||||
"Microsoft.Framework.Logging.Testing": "1.0.0-*",
|
"Microsoft.Framework.Logging.Testing": "1.0.0-*",
|
||||||
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
"xunit.runner.aspnet": "2.0.0-aspnet-*"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue