Пример #1
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();

            ////Loding the Unity Container from Web Config
            IUnityContainer containerUnity = UnityContainerBootstrapper.Bootstrap();

            UnityMvcServiceLocator unityMVCServiceLcator = new UnityMvcServiceLocator(containerUnity);
            HttpContext.Current.Cache["UnityServiceLocator"] = unityMVCServiceLcator;

            var factory = new ServiceLocatorControllerFactory(unityMVCServiceLcator);
            ControllerBuilder.Current.SetControllerFactory(factory);
            DependencyResolver.SetResolver(unityMVCServiceLcator);

            //Add the InterfaceModelBinder
            ModelBinders.Binders.DefaultBinder = new InterfaceModelBinder(unityMVCServiceLcator);
        }
 protected ServiceLocatorControllerFactory(UnityMvcServiceLocator container, IControllerFactory innerFactory)
 {
     _container = container;
     _innerFactory = innerFactory;
 }
 public ServiceLocatorControllerFactory(UnityMvcServiceLocator container)
     : this(container, new DefaultControllerFactory())
 {
 }