diff --git a/src/Microsoft.AspNet.Routing/DefaultInlineConstraintResolver.cs b/src/Microsoft.AspNet.Routing/DefaultInlineConstraintResolver.cs index c57e0746d5..fbad3e786f 100644 --- a/src/Microsoft.AspNet.Routing/DefaultInlineConstraintResolver.cs +++ b/src/Microsoft.AspNet.Routing/DefaultInlineConstraintResolver.cs @@ -22,7 +22,7 @@ namespace Microsoft.AspNet.Routing private readonly IServiceProvider _serviceProvider; public DefaultInlineConstraintResolver(IServiceProvider serviceProvider, - IOptionsAccessor routeOptions) + IOptions routeOptions) { _serviceProvider = serviceProvider; _inlineConstraintMap = routeOptions.Options.ConstraintMap; diff --git a/src/Microsoft.AspNet.Routing/RouterMiddleware.cs b/src/Microsoft.AspNet.Routing/RouterMiddleware.cs index c249537dca..00fecccb58 100644 --- a/src/Microsoft.AspNet.Routing/RouterMiddleware.cs +++ b/src/Microsoft.AspNet.Routing/RouterMiddleware.cs @@ -3,6 +3,7 @@ using System.Threading.Tasks; using Microsoft.AspNet.Http; +using Microsoft.AspNet.RequestContainer; using Microsoft.AspNet.Routing; using Microsoft.AspNet.Routing.Logging; using Microsoft.Framework.DependencyInjection; @@ -34,22 +35,25 @@ namespace Microsoft.AspNet.Builder public async Task Invoke(HttpContext httpContext) { - EnsureLogger(httpContext); - using (_logger.BeginScope("RouterMiddleware.Invoke")) + using (RequestServicesContainer.EnsureRequestServices(httpContext)) { - var context = new RouteContext(httpContext); - context.RouteData.Routers.Add(Router); - - await Router.RouteAsync(context); - - if (_logger.IsEnabled(TraceType.Information)) + EnsureLogger(httpContext); + using (_logger.BeginScope("RouterMiddleware.Invoke")) { - _logger.WriteValues(new RouterMiddlewareInvokeValues() { Handled = context.IsHandled }); - } + var context = new RouteContext(httpContext); + context.RouteData.Routers.Add(Router); - if (!context.IsHandled) - { - await Next.Invoke(httpContext); + await Router.RouteAsync(context); + + if (_logger.IsEnabled(TraceType.Information)) + { + _logger.WriteValues(new RouterMiddlewareInvokeValues() { Handled = context.IsHandled }); + } + + if (!context.IsHandled) + { + await Next.Invoke(httpContext); + } } } } diff --git a/test/Microsoft.AspNet.Routing.Tests/DefaultInlineConstraintResolverTest.cs b/test/Microsoft.AspNet.Routing.Tests/DefaultInlineConstraintResolverTest.cs index a3a444a679..52a1923fac 100644 --- a/test/Microsoft.AspNet.Routing.Tests/DefaultInlineConstraintResolverTest.cs +++ b/test/Microsoft.AspNet.Routing.Tests/DefaultInlineConstraintResolverTest.cs @@ -300,7 +300,7 @@ namespace Microsoft.AspNet.Routing.Tests private IInlineConstraintResolver GetInlineConstraintResolver(RouteOptions routeOptions) { - var optionsAccessor = new Mock>(); + var optionsAccessor = new Mock>(); optionsAccessor.SetupGet(o => o.Options).Returns(routeOptions); var serviceProvider = new Mock(); serviceProvider.Setup(o => o.GetService(It.Is(type => type == typeof(ITypeActivator)))) diff --git a/test/Microsoft.AspNet.Routing.Tests/InlineRouteParameterParserTests.cs b/test/Microsoft.AspNet.Routing.Tests/InlineRouteParameterParserTests.cs index 84ceee0c64..e7385848b2 100644 --- a/test/Microsoft.AspNet.Routing.Tests/InlineRouteParameterParserTests.cs +++ b/test/Microsoft.AspNet.Routing.Tests/InlineRouteParameterParserTests.cs @@ -296,12 +296,12 @@ namespace Microsoft.AspNet.Routing.Tests private static IInlineConstraintResolver GetConstraintResolver() { var services = new ServiceCollection { OptionsServices.GetDefaultServices() }; - services.ConfigureOptions(options => + services.Configure(options => options .ConstraintMap .Add("test", typeof(TestRouteConstraint))); var serviceProvider = services.BuildServiceProvider(); - var accessor = serviceProvider.GetService>(); + var accessor = serviceProvider.GetService>(); return new DefaultInlineConstraintResolver(serviceProvider, accessor); } diff --git a/test/Microsoft.AspNet.Routing.Tests/Template/TemplateBinderTests.cs b/test/Microsoft.AspNet.Routing.Tests/Template/TemplateBinderTests.cs index 102f73cdd5..751da95b50 100644 --- a/test/Microsoft.AspNet.Routing.Tests/Template/TemplateBinderTests.cs +++ b/test/Microsoft.AspNet.Routing.Tests/Template/TemplateBinderTests.cs @@ -1055,7 +1055,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests { var services = new ServiceCollection { OptionsServices.GetDefaultServices() }; var serviceProvider = services.BuildServiceProvider(); - var accessor = serviceProvider.GetService>(); + var accessor = serviceProvider.GetService>(); return new DefaultInlineConstraintResolver(serviceProvider, accessor); } diff --git a/test/Microsoft.AspNet.Routing.Tests/Template/TemplateMatcherTests.cs b/test/Microsoft.AspNet.Routing.Tests/Template/TemplateMatcherTests.cs index 247f5136d1..8361406c6a 100644 --- a/test/Microsoft.AspNet.Routing.Tests/Template/TemplateMatcherTests.cs +++ b/test/Microsoft.AspNet.Routing.Tests/Template/TemplateMatcherTests.cs @@ -823,7 +823,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests { var services = new ServiceCollection { OptionsServices.GetDefaultServices() }; var serviceProvider = services.BuildServiceProvider(); - var accessor = serviceProvider.GetService>(); + var accessor = serviceProvider.GetService>(); return new DefaultInlineConstraintResolver(serviceProvider, accessor); } } diff --git a/test/Microsoft.AspNet.Routing.Tests/Template/TemplateParserTests.cs b/test/Microsoft.AspNet.Routing.Tests/Template/TemplateParserTests.cs index 175b49e32b..192d90a249 100644 --- a/test/Microsoft.AspNet.Routing.Tests/Template/TemplateParserTests.cs +++ b/test/Microsoft.AspNet.Routing.Tests/Template/TemplateParserTests.cs @@ -481,7 +481,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests { var services = new ServiceCollection { OptionsServices.GetDefaultServices() }; var serviceProvider = services.BuildServiceProvider(); - var accessor = serviceProvider.GetService>(); + var accessor = serviceProvider.GetService>(); return new DefaultInlineConstraintResolver(serviceProvider, accessor); } diff --git a/test/Microsoft.AspNet.Routing.Tests/TemplateParserDefaultValuesTests.cs b/test/Microsoft.AspNet.Routing.Tests/TemplateParserDefaultValuesTests.cs index 2cd24f08e6..66895ba8a5 100644 --- a/test/Microsoft.AspNet.Routing.Tests/TemplateParserDefaultValuesTests.cs +++ b/test/Microsoft.AspNet.Routing.Tests/TemplateParserDefaultValuesTests.cs @@ -110,7 +110,7 @@ namespace Microsoft.AspNet.Routing.Tests { var services = new ServiceCollection { OptionsServices.GetDefaultServices() }; var serviceProvider = services.BuildServiceProvider(); - var accessor = serviceProvider.GetService>(); + var accessor = serviceProvider.GetService>(); return new DefaultInlineConstraintResolver(serviceProvider, accessor); } }