- Fixing MVC controller resolution from the new autofac 2.1 container during bootstrap.

--HG--
branch : dev
This commit is contained in:
Suha Can
2010-04-05 12:22:31 -07:00
parent 307ba8b096
commit 6f63904d1c
3 changed files with 5 additions and 6 deletions

View File

@@ -85,7 +85,7 @@ namespace Orchard.Environment.ShellBuilders {
foreach (var module in _container.Resolve<IEnumerable<IModule>>()) {
modulesUpdater.RegisterModule(module);
}
//modulesUpdater.Update(shellScope);
modulesUpdater.Update(shellScope);
return shellScope;
}

View File

@@ -25,14 +25,11 @@ namespace Orchard.Mvc {
moduleBuilder.RegisterType<FilterResolvingActionInvoker>().As(actionInvokerService).InstancePerDependency();
moduleBuilder.RegisterControllers(new OrchardControllerIdentificationStrategy(extensions), assemblies.ToArray())
.InjectActionInvoker(actionInvokerService);
.InjectActionInvoker(actionInvokerService).InstancePerDependency();
moduleBuilder.Register(ctx => HttpContextBaseFactory(ctx)).As<HttpContextBase>().InstancePerDependency();
moduleBuilder.Register(ctx => RequestContextFactory(ctx)).As<RequestContext>().InstancePerDependency();
moduleBuilder.Register(ctx => UrlHelperFactory(ctx)).As<UrlHelper>().InstancePerDependency();
ControllerBuilder.Current.SetControllerFactory(
new AutofacControllerFactory(new ContainerProvider(moduleBuilder.Build())));
}
private static bool IsRequestValid() {

View File

@@ -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<Parameter>{TypedParameter.From(requestContext)}, out controller)) {
container.TryResolve(service, new List<Parameter>{parameter}, out controller)) {
return (IController)controller;
}
return base.CreateController(requestContext, controllerName);