From 6f63904d1c5d67b285beabee2b2232888030f47d Mon Sep 17 00:00:00 2001 From: Suha Can Date: Mon, 5 Apr 2010 12:22:31 -0700 Subject: [PATCH] - Fixing MVC controller resolution from the new autofac 2.1 container during bootstrap. --HG-- branch : dev --- .../ShellBuilders/SafeModeShellContainerFactory.cs | 2 +- src/Orchard/Mvc/MvcModule.cs | 5 +---- src/Orchard/Mvc/OrchardControllerFactory.cs | 4 +++- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Orchard/Environment/ShellBuilders/SafeModeShellContainerFactory.cs b/src/Orchard/Environment/ShellBuilders/SafeModeShellContainerFactory.cs index aa313035a..c4cde56f0 100644 --- a/src/Orchard/Environment/ShellBuilders/SafeModeShellContainerFactory.cs +++ b/src/Orchard/Environment/ShellBuilders/SafeModeShellContainerFactory.cs @@ -85,7 +85,7 @@ namespace Orchard.Environment.ShellBuilders { foreach (var module in _container.Resolve>()) { modulesUpdater.RegisterModule(module); } - //modulesUpdater.Update(shellScope); + modulesUpdater.Update(shellScope); return shellScope; } diff --git a/src/Orchard/Mvc/MvcModule.cs b/src/Orchard/Mvc/MvcModule.cs index e1f9f9ba7..5e7a23698 100644 --- a/src/Orchard/Mvc/MvcModule.cs +++ b/src/Orchard/Mvc/MvcModule.cs @@ -25,14 +25,11 @@ namespace Orchard.Mvc { moduleBuilder.RegisterType().As(actionInvokerService).InstancePerDependency(); moduleBuilder.RegisterControllers(new OrchardControllerIdentificationStrategy(extensions), assemblies.ToArray()) - .InjectActionInvoker(actionInvokerService); + .InjectActionInvoker(actionInvokerService).InstancePerDependency(); moduleBuilder.Register(ctx => HttpContextBaseFactory(ctx)).As().InstancePerDependency(); moduleBuilder.Register(ctx => RequestContextFactory(ctx)).As().InstancePerDependency(); moduleBuilder.Register(ctx => UrlHelperFactory(ctx)).As().InstancePerDependency(); - - ControllerBuilder.Current.SetControllerFactory( - new AutofacControllerFactory(new ContainerProvider(moduleBuilder.Build()))); } private static bool IsRequestValid() { diff --git a/src/Orchard/Mvc/OrchardControllerFactory.cs b/src/Orchard/Mvc/OrchardControllerFactory.cs index e3d603dd2..b8a9f97af 100644 --- a/src/Orchard/Mvc/OrchardControllerFactory.cs +++ b/src/Orchard/Mvc/OrchardControllerFactory.cs @@ -21,8 +21,10 @@ namespace Orchard.Mvc { // Now that the request container is known - try to resolve the controller object controller; + NamedService service = new NamedService(serviceName, typeof(IController)); + TypedParameter parameter = TypedParameter.From(requestContext); if (container != null && - container.TryResolve(new NamedService(serviceName, typeof(IController)), new List{TypedParameter.From(requestContext)}, out controller)) { + container.TryResolve(service, new List{parameter}, out controller)) { return (IController)controller; } return base.CreateController(requestContext, controllerName);