From 51e5a5bf1931e300ee97e9012620337db304b878 Mon Sep 17 00:00:00 2001 From: Ryan Nowak Date: Mon, 10 Mar 2014 17:44:29 -0700 Subject: [PATCH] Fix for issue #57 Replaced ActivatorUtilties with ITypeActivator in WebFX. --- src/Microsoft.AspNet.Mvc.Core/DefaultControllerFactory.cs | 6 ++++-- .../Binders/GenericModelBinder.cs | 8 ++++---- src/Microsoft.AspNet.Mvc/MvcServices.cs | 2 ++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Microsoft.AspNet.Mvc.Core/DefaultControllerFactory.cs b/src/Microsoft.AspNet.Mvc.Core/DefaultControllerFactory.cs index 0692adf56f..f08d167d10 100644 --- a/src/Microsoft.AspNet.Mvc.Core/DefaultControllerFactory.cs +++ b/src/Microsoft.AspNet.Mvc.Core/DefaultControllerFactory.cs @@ -10,11 +10,13 @@ namespace Microsoft.AspNet.Mvc { public class DefaultControllerFactory : IControllerFactory { + private readonly ITypeActivator _activator; private readonly IServiceProvider _serviceProvider; - public DefaultControllerFactory(IServiceProvider serviceProvider) + public DefaultControllerFactory(IServiceProvider serviceProvider, ITypeActivator activator) { _serviceProvider = serviceProvider; + _activator = activator; } public object CreateController(ActionContext actionContext, ModelStateDictionary modelState) @@ -27,7 +29,7 @@ namespace Microsoft.AspNet.Mvc try { - var controller = ActivatorUtilities.CreateInstance(_serviceProvider, actionDescriptor.ControllerDescriptor.ControllerTypeInfo.AsType()); + var controller = _activator.CreateInstance(actionDescriptor.ControllerDescriptor.ControllerTypeInfo.AsType()); // TODO: How do we feed the controller with context (need DI improvements) InitializeController(controller, actionContext, modelState); diff --git a/src/Microsoft.AspNet.Mvc.ModelBinding/Binders/GenericModelBinder.cs b/src/Microsoft.AspNet.Mvc.ModelBinding/Binders/GenericModelBinder.cs index 49d67be0c7..fa5cf1f78f 100644 --- a/src/Microsoft.AspNet.Mvc.ModelBinding/Binders/GenericModelBinder.cs +++ b/src/Microsoft.AspNet.Mvc.ModelBinding/Binders/GenericModelBinder.cs @@ -9,11 +9,11 @@ namespace Microsoft.AspNet.Mvc.ModelBinding { public class GenericModelBinder : IModelBinder { - private readonly IServiceProvider _serviceProvider; + private readonly ITypeActivator _activator; - public GenericModelBinder(IServiceProvider serviceProvider) + public GenericModelBinder(ITypeActivator activator) { - _serviceProvider = serviceProvider; + _activator = activator; } public bool BindModel(ModelBindingContext bindingContext) @@ -21,7 +21,7 @@ namespace Microsoft.AspNet.Mvc.ModelBinding Type binderType = ResolveBinderType(bindingContext.ModelType); if (binderType != null) { - var binder = ActivatorUtilities.CreateInstance(_serviceProvider); + var binder = _activator.CreateInstance(); return binder.BindModel(bindingContext); } diff --git a/src/Microsoft.AspNet.Mvc/MvcServices.cs b/src/Microsoft.AspNet.Mvc/MvcServices.cs index 1265e3158a..9b8d94e1a9 100644 --- a/src/Microsoft.AspNet.Mvc/MvcServices.cs +++ b/src/Microsoft.AspNet.Mvc/MvcServices.cs @@ -20,6 +20,8 @@ namespace Microsoft.AspNet.Mvc { var describe = new ServiceDescriber(configuration); + yield return describe.Transient(); + yield return describe.Transient(); yield return describe.Transient(); yield return describe.Transient();