maartenba / MvcSiteMapProvider

An ASP.NET MVC SiteMapProvider implementation for the ASP.NET MVC framework.
Microsoft Public License
537 stars 220 forks source link

Can't register custom ControllerFactory #492

Open 7702244 opened 4 years ago

7702244 commented 4 years ago

When I'm using MvcSiteMapProvider I can't register custom ControllerFactory in Application_Start, because MvcSiteMapProvider redefines it later, so my CustomControllerFactory have no effect.

protected void Application_Start()
        {
            //Prints: System.Web.Mvc.DefaultControllerFactory
            logger.Info(ControllerBuilder.Current.GetControllerFactory().ToString());

            ControllerBuilder.Current.SetControllerFactory(new CustomControllerFactory());

            //Prints: WebApplication.Utils.CustomControllerFactory
            logger.Info(ControllerBuilder.Current.GetControllerFactory().ToString());
        }

        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            //Prints: MvcSiteMapProvider.DI.ControllerFactoryDecorator
            logger.Info(ControllerBuilder.Current.GetControllerFactory().ToString());
        }

MvcSiteMapProvider.DI.ControllerFactoryDecorator doesn't use my CustomControllerFactory as a base.