diff --git a/src/Microsoft.AspNet.Mvc.Core/DefaultControllerActivator.cs b/src/Microsoft.AspNet.Mvc.Core/DefaultControllerActivator.cs index a3846764f2..391b98ef64 100644 --- a/src/Microsoft.AspNet.Mvc.Core/DefaultControllerActivator.cs +++ b/src/Microsoft.AspNet.Mvc.Core/DefaultControllerActivator.cs @@ -89,7 +89,7 @@ namespace Microsoft.AspNet.Mvc valueAccessor = (actionContext) => { var serviceProvider = actionContext.HttpContext.RequestServices; - return serviceProvider.GetService(property.PropertyType); + return serviceProvider.GetRequiredService(property.PropertyType); }; } diff --git a/src/Microsoft.AspNet.Mvc.Core/Filters/ServiceFilterAttribute.cs b/src/Microsoft.AspNet.Mvc.Core/Filters/ServiceFilterAttribute.cs index 4d7b2292d1..f6cdd54703 100644 --- a/src/Microsoft.AspNet.Mvc.Core/Filters/ServiceFilterAttribute.cs +++ b/src/Microsoft.AspNet.Mvc.Core/Filters/ServiceFilterAttribute.cs @@ -4,6 +4,7 @@ using System; using System.Diagnostics; using Microsoft.AspNet.Mvc.Core; +using Microsoft.Framework.DependencyInjection; namespace Microsoft.AspNet.Mvc { @@ -22,7 +23,7 @@ namespace Microsoft.AspNet.Mvc public IFilter CreateInstance([NotNull] IServiceProvider serviceProvider) { - var service = serviceProvider.GetService(ServiceType); + var service = serviceProvider.GetRequiredService(ServiceType); var filter = service as IFilter; if (filter == null) diff --git a/src/Microsoft.AspNet.Mvc.Core/Injector.cs b/src/Microsoft.AspNet.Mvc.Core/Injector.cs index 8e8f8d17ba..3860da7bb3 100644 --- a/src/Microsoft.AspNet.Mvc.Core/Injector.cs +++ b/src/Microsoft.AspNet.Mvc.Core/Injector.cs @@ -25,7 +25,7 @@ namespace Microsoft.AspNet.Mvc var args = initializeMethod.GetParameters() - .Select(p => services.GetService(p.ParameterType)) + .Select(p => services.GetRequiredService(p.ParameterType)) .ToArray(); initializeMethod.Invoke(obj, args); diff --git a/src/Microsoft.AspNet.Mvc.Core/Internal/MvcServicesHelper.cs b/src/Microsoft.AspNet.Mvc.Core/Internal/MvcServicesHelper.cs index aee7841999..6e8a55b37c 100644 --- a/src/Microsoft.AspNet.Mvc.Core/Internal/MvcServicesHelper.cs +++ b/src/Microsoft.AspNet.Mvc.Core/Internal/MvcServicesHelper.cs @@ -20,7 +20,7 @@ namespace Microsoft.AspNet.Mvc.Internal /// The type of service which needs to be searched for. public static void ThrowIfMvcNotRegistered(IServiceProvider services) { - if (services.GetServiceOrNull(typeof(MvcMarkerService)) == null) + if (services.GetService(typeof(MvcMarkerService)) == null) { throw new InvalidOperationException(Resources.FormatUnableToFindServices( "IServiceCollection.AddMvc()", diff --git a/src/Microsoft.AspNet.Mvc.Core/ViewComponents/DefaultViewComponentActivator.cs b/src/Microsoft.AspNet.Mvc.Core/ViewComponents/DefaultViewComponentActivator.cs index 9a17d44f7e..67e8c9f728 100644 --- a/src/Microsoft.AspNet.Mvc.Core/ViewComponents/DefaultViewComponentActivator.cs +++ b/src/Microsoft.AspNet.Mvc.Core/ViewComponents/DefaultViewComponentActivator.cs @@ -6,6 +6,7 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.Reflection; using Microsoft.AspNet.Mvc.Rendering; +using Microsoft.Framework.DependencyInjection; namespace Microsoft.AspNet.Mvc { @@ -73,7 +74,7 @@ namespace Microsoft.AspNet.Mvc valueAccessor = (viewContext) => { var serviceProvider = viewContext.HttpContext.RequestServices; - var service = serviceProvider.GetService(property.PropertyType); + var service = serviceProvider.GetRequiredService(property.PropertyType); if (typeof(ICanHasViewContext).IsAssignableFrom(property.PropertyType)) { ((ICanHasViewContext)service).Contextualize(viewContext); diff --git a/src/Microsoft.AspNet.Mvc.Razor/DefaultTagHelperActivator.cs b/src/Microsoft.AspNet.Mvc.Razor/DefaultTagHelperActivator.cs index 6667e86390..d575e85d95 100644 --- a/src/Microsoft.AspNet.Mvc.Razor/DefaultTagHelperActivator.cs +++ b/src/Microsoft.AspNet.Mvc.Razor/DefaultTagHelperActivator.cs @@ -6,6 +6,7 @@ using System.Collections.Concurrent; using System.Reflection; using Microsoft.AspNet.Mvc.Rendering; using Microsoft.AspNet.Razor.Runtime.TagHelpers; +using Microsoft.Framework.DependencyInjection; namespace Microsoft.AspNet.Mvc.Razor { @@ -52,7 +53,7 @@ namespace Microsoft.AspNet.Mvc.Razor valueAccessor = (viewContext) => { var serviceProvider = viewContext.HttpContext.RequestServices; - var service = serviceProvider.GetService(property.PropertyType); + var service = serviceProvider.GetRequiredService(property.PropertyType); var contextable = service as ICanHasViewContext; contextable?.Contextualize(viewContext); diff --git a/src/Microsoft.AspNet.Mvc.Razor/RazorPageActivator.cs b/src/Microsoft.AspNet.Mvc.Razor/RazorPageActivator.cs index 9572a19892..74dd98d87f 100644 --- a/src/Microsoft.AspNet.Mvc.Razor/RazorPageActivator.cs +++ b/src/Microsoft.AspNet.Mvc.Razor/RazorPageActivator.cs @@ -97,7 +97,7 @@ namespace Microsoft.AspNet.Mvc.Razor valueAccessor = context => { var serviceProvider = context.HttpContext.RequestServices; - var value = serviceProvider.GetService(property.PropertyType); + var value = serviceProvider.GetRequiredService(property.PropertyType); var canHasViewContext = value as ICanHasViewContext; if (canHasViewContext != null) { diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/DefaultControllerActivatorTest.cs b/test/Microsoft.AspNet.Mvc.Core.Test/DefaultControllerActivatorTest.cs index 5090ecf08e..0edc0555a5 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/DefaultControllerActivatorTest.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/DefaultControllerActivatorTest.cs @@ -5,6 +5,7 @@ using System; using Microsoft.AspNet.Http; using Microsoft.AspNet.Mvc.ModelBinding; +using Microsoft.AspNet.Mvc.Rendering; using Microsoft.AspNet.Routing; using Moq; using Xunit; @@ -17,12 +18,16 @@ namespace Microsoft.AspNet.Mvc.Core.Test public void Activate_SetsPropertiesFromActionContextHierarchy() { // Arrange + var services = new Mock(); + services.Setup(s => s.GetService(typeof(IUrlHelper))) + .Returns(Mock.Of()); + var httpRequest = Mock.Of(); var httpContext = new Mock(); httpContext.SetupGet(c => c.Request) .Returns(httpRequest); httpContext.SetupGet(c => c.RequestServices) - .Returns(Mock.Of()); + .Returns(services.Object); var routeContext = new RouteContext(httpContext.Object); var controller = new TestController(); var context = new ActionContext(routeContext, new ActionDescriptor()) @@ -44,13 +49,17 @@ namespace Microsoft.AspNet.Mvc.Core.Test public void Activate_SetsViewDatDictionary() { // Arrange - var service = new Mock(); - service.Setup(s => s.GetService(typeof(IModelMetadataProvider))) - .Returns(Mock.Of()); + var services = new Mock(); + services.Setup(s => s.GetService(typeof(IModelMetadataProvider))) + .Returns(Mock.Of()); + services.Setup(s => s.GetService(typeof(ICompositeViewEngine))) + .Returns(Mock.Of()); + services.Setup(s => s.GetService(typeof(IUrlHelper))) + .Returns(Mock.Of()); var httpContext = new Mock(); httpContext.SetupGet(c => c.RequestServices) - .Returns(service.Object); + .Returns(services.Object); var routeContext = new RouteContext(httpContext.Object); var controller = new TestController(); var context = new ActionContext(routeContext, new ActionDescriptor()) @@ -71,13 +80,13 @@ namespace Microsoft.AspNet.Mvc.Core.Test { // Arrange var urlHelper = Mock.Of(); - var service = new Mock(); - service.Setup(s => s.GetService(typeof(IUrlHelper))) - .Returns(urlHelper); + var services = new Mock(); + services.Setup(s => s.GetService(typeof(IUrlHelper))) + .Returns(urlHelper); var httpContext = new Mock(); httpContext.SetupGet(c => c.RequestServices) - .Returns(service.Object); + .Returns(services.Object); var routeContext = new RouteContext(httpContext.Object); var controller = new TestController(); var context = new ActionContext(routeContext, new ActionDescriptor()) @@ -97,11 +106,15 @@ namespace Microsoft.AspNet.Mvc.Core.Test public void Activate_IgnoresPropertiesThatAreNotDecoratedWithActivateAttribute() { // Arrange + var services = new Mock(); + services.Setup(s => s.GetService(typeof(IUrlHelper))) + .Returns(Mock.Of()); + var httpContext = new Mock(); httpContext.SetupGet(c => c.Response) .Returns(Mock.Of()); httpContext.SetupGet(c => c.RequestServices) - .Returns(Mock.Of()); + .Returns(services.Object); var routeContext = new RouteContext(httpContext.Object); var controller = new TestController(); var context = new ActionContext(routeContext, new ActionDescriptor()) diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/DefaultViewComponentActivatorTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/DefaultViewComponentActivatorTests.cs index df5613a144..50a2bc9789 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/DefaultViewComponentActivatorTests.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/DefaultViewComponentActivatorTests.cs @@ -25,6 +25,7 @@ namespace Microsoft.AspNet.Mvc var helper = Mock.Of>(); var serviceProvider = new Mock(); serviceProvider.Setup(p => p.GetService(typeof(IHtmlHelper))).Returns(helper); + serviceProvider.Setup(p => p.GetService(typeof(ICompositeViewEngine))).Returns(Mock.Of()); var viewContext = GetViewContext(serviceProvider.Object); // Act @@ -44,6 +45,7 @@ namespace Microsoft.AspNet.Mvc var helper = Mock.Of>(); var serviceProvider = new Mock(); serviceProvider.Setup(p => p.GetService(typeof(IHtmlHelper))).Returns(helper); + serviceProvider.Setup(p => p.GetService(typeof(ICompositeViewEngine))).Returns(Mock.Of()); var viewContext = GetViewContext(serviceProvider.Object); // Act @@ -63,6 +65,7 @@ namespace Microsoft.AspNet.Mvc var serviceProvider = new Mock(); serviceProvider.Setup(p => p.GetService(typeof(IHtmlHelper))).Returns(helper); serviceProvider.Setup(p => p.GetService(typeof(MyService))).Returns(myTestService); + serviceProvider.Setup(p => p.GetService(typeof(ICompositeViewEngine))).Returns(Mock.Of()); var viewContext = GetViewContext(serviceProvider.Object); var instance = new TestViewComponentWithCustomDataType(); diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/Internal/MvcServicesHelperTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/Internal/MvcServicesHelperTests.cs index 551c74027b..fca8f1eb20 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/Internal/MvcServicesHelperTests.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/Internal/MvcServicesHelperTests.cs @@ -34,8 +34,8 @@ namespace Microsoft.AspNet.Mvc // Arrange var services = new Mock(); var expectedOutput = new MvcMarkerService(); - services.Setup(o => o.GetService(typeof(IEnumerable))) - .Returns(new List { expectedOutput }); + services.Setup(o => o.GetService(typeof(MvcMarkerService))) + .Returns(expectedOutput); // Act & Assert Assert.DoesNotThrow(() => MvcServicesHelper.ThrowIfMvcNotRegistered(services.Object)); diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/MvcRouteHandlerTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/MvcRouteHandlerTests.cs index a521c03d42..95a001d74a 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/MvcRouteHandlerTests.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/MvcRouteHandlerTests.cs @@ -223,8 +223,8 @@ namespace Microsoft.AspNet.Mvc .Returns(invokerFactory); httpContext.Setup(h => h.RequestServices.GetService(typeof(ILoggerFactory))) .Returns(loggerFactory); - httpContext.Setup(h => h.RequestServices.GetService(typeof(IEnumerable))) - .Returns(new List { new MvcMarkerService() }); + httpContext.Setup(h => h.RequestServices.GetService(typeof(MvcMarkerService))) + .Returns(new MvcMarkerService()); httpContext.Setup(h => h.RequestServices.GetService(typeof(IOptions))) .Returns(optionsAccessor); diff --git a/test/WebSites/Microsoft.AspNet.Mvc.TestConfiguration/BuilderExtensions.cs b/test/WebSites/Microsoft.AspNet.Mvc.TestConfiguration/BuilderExtensions.cs index 81ee5867a2..8813249a29 100644 --- a/test/WebSites/Microsoft.AspNet.Mvc.TestConfiguration/BuilderExtensions.cs +++ b/test/WebSites/Microsoft.AspNet.Mvc.TestConfiguration/BuilderExtensions.cs @@ -11,7 +11,7 @@ namespace Microsoft.AspNet.Builder { public static Configuration GetTestConfiguration(this IApplicationBuilder app) { - var configurationProvider = app.ApplicationServices.GetServiceOrDefault(); + var configurationProvider = app.ApplicationServices.GetService(); var configuration = configurationProvider == null ? new Configuration() : configurationProvider.Configuration;