diff --git a/DNN Platform/DotNetNuke.Web.Mvc/DnnMvcControllerFactory.cs b/DNN Platform/DotNetNuke.Web.Mvc/DnnMvcControllerFactory.cs
deleted file mode 100644
index b187ad97b41..00000000000
--- a/DNN Platform/DotNetNuke.Web.Mvc/DnnMvcControllerFactory.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using DotNetNuke.Common;
-using System;
-using System.Web.Mvc;
-using System.Web.Routing;
-
-namespace DotNetNuke.Web.Mvc
-{
- ///
- /// DNN Specific MVC Controller Factory that attempts to use
- /// Dependency Injection to include all dependencies on the
- /// Controller.
- ///
- public class DnnMvcControllerFactory : DefaultControllerFactory, IControllerFactory
- {
- protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
- {
- var controller = (IController)Globals.DependencyProvider.GetService(controllerType);
- return controller ?? base.GetControllerInstance(requestContext, controllerType);
- }
- }
-}
diff --git a/DNN Platform/DotNetNuke.Web.Mvc/DnnMvcDependencyResolver.cs b/DNN Platform/DotNetNuke.Web.Mvc/DnnMvcDependencyResolver.cs
new file mode 100644
index 00000000000..55937e4e2fa
--- /dev/null
+++ b/DNN Platform/DotNetNuke.Web.Mvc/DnnMvcDependencyResolver.cs
@@ -0,0 +1,71 @@
+using Microsoft.Extensions.DependencyInjection;
+using System;
+using System.Collections.Generic;
+using System.Web.Mvc;
+
+namespace DotNetNuke.Web.Mvc
+{
+ ///
+ /// The implementation used in the
+ /// MVC Modules of DNN.
+ ///
+ internal class DnnMvcDependencyResolver : IDependencyResolver
+ {
+ private readonly IServiceProvider _serviceProvider;
+ private readonly IDependencyResolver _resolver;
+
+ ///
+ /// Instantiate a new instance of the .
+ ///
+ ///
+ /// The to be used in the
+ ///
+ public DnnMvcDependencyResolver(IServiceProvider serviceProvider, IDependencyResolver resolver)
+ {
+ _serviceProvider = serviceProvider;
+ _resolver = resolver;
+ }
+
+ ///
+ /// Returns the specified service from the scope
+ ///
+ ///
+ /// The service to be retrieved
+ ///
+ ///
+ /// The retrieved service
+ ///
+ public object GetService(Type serviceType)
+ {
+ try
+ {
+ return _serviceProvider.GetService(serviceType);
+ }
+ catch
+ {
+ return _resolver.GetService(serviceType);
+ }
+ }
+
+ ///
+ /// Returns the specified services from the scope
+ ///
+ ///
+ /// The service to be retrieved
+ ///
+ ///
+ /// The retrieved service
+ ///
+ public IEnumerable