向ASPNET MVC 2.0区域注册IWindsorContainer

时间:2010-04-18 22:07:57

标签: asp.net-mvc castle-windsor

我有以下代码在MVC 2中添加区域之前运行良好:

protected override IWindsorContainer CreateContainer(string windsorConfig)
        {

            IWindsorContainer container = new WindsorContainer();

            container.Register(Component.For<IUnitOfWorkFactory>()
                .ImplementedBy<NHibernateUnitOfWorkFactory>());

                container.Register(AllTypes.Of<IController>()
                     .FromAssembly(typeof(HomeController).Assembly)
                     .Configure(t => t.Named(t.Implementation.Name.ToUpper())
                     .LifeStyle.Is(LifestyleType.Transient)));


            return container;
        }

它不再适用于MVC 2.0区域功能。

您可以指导我完成一个可能的解决方案

由于

1 个答案:

答案 0 :(得分:0)

控制器需要使用小写名称注册。见this article。我建议使用MvcContrib,它有扩展方法,可以在Windsor中轻松注册控制器,处理这些细节,还有一个ControllerFactory实现。