From 9a44e3e08b580ef267df5e3c185df2924ba29c96 Mon Sep 17 00:00:00 2001 From: Kiran Challa Date: Thu, 5 Mar 2015 12:27:47 -0800 Subject: [PATCH] [Fixes #2095] Mark IControllerFactory methods in DefaultControllerFactory as virtual --- .../DefaultControllerActivator.cs | 2 +- .../DefaultControllerFactory.cs | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.AspNet.Mvc.Core/DefaultControllerActivator.cs b/src/Microsoft.AspNet.Mvc.Core/DefaultControllerActivator.cs index cabfab274e..d0ac4ccf93 100644 --- a/src/Microsoft.AspNet.Mvc.Core/DefaultControllerActivator.cs +++ b/src/Microsoft.AspNet.Mvc.Core/DefaultControllerActivator.cs @@ -23,7 +23,7 @@ namespace Microsoft.AspNet.Mvc _typeActivatorCache = typeActivatorCache; } /// - public object Create([NotNull] ActionContext actionContext, [NotNull] Type controllerType) + public virtual object Create([NotNull] ActionContext actionContext, [NotNull] Type controllerType) { var serviceProvider = actionContext.HttpContext.RequestServices; return _typeActivatorCache.CreateInstance(serviceProvider, controllerType); diff --git a/src/Microsoft.AspNet.Mvc.Core/DefaultControllerFactory.cs b/src/Microsoft.AspNet.Mvc.Core/DefaultControllerFactory.cs index 9700d6bf44..c21a03af7a 100644 --- a/src/Microsoft.AspNet.Mvc.Core/DefaultControllerFactory.cs +++ b/src/Microsoft.AspNet.Mvc.Core/DefaultControllerFactory.cs @@ -38,8 +38,19 @@ namespace Microsoft.AspNet.Mvc _getPropertiesToActivate = GetPropertiesToActivate; } + /// + /// The used to create a controller. + /// + protected IControllerActivator ControllerActivator + { + get + { + return _controllerActivator; + } + } + /// - public object CreateController([NotNull] ActionContext actionContext) + public virtual object CreateController([NotNull] ActionContext actionContext) { var actionDescriptor = actionContext.ActionDescriptor as ControllerActionDescriptor; if (actionDescriptor == null) @@ -58,7 +69,7 @@ namespace Microsoft.AspNet.Mvc } /// - public void ReleaseController(object controller) + public virtual void ReleaseController(object controller) { var disposableController = controller as IDisposable;