React to hosting

This commit is contained in:
Hao Kung 2015-03-19 21:02:35 -07:00
parent 37dc8581de
commit 0db1f1a42f
5 changed files with 23 additions and 29 deletions

View File

@ -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

View File

@ -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);
}
} }
} }
} }

View File

@ -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": {

View File

@ -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);

View File

@ -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-*"
}, },