private void Register(IServiceRegistrar adapter) { adapter.RegisterInstance <RouteCollection>(RouteTable.Routes) .RegisterInstance <IBuildManager>(BuildManager) .RegisterAsSingleton <IFilterRegistry, FilterRegistry>() .RegisterAsSingleton <IModelMetadataRegistry, ModelMetadataRegistry>(); BuildManager.ConcreteTypes .Where(type => KnownTypes.BootstrapperTaskType.IsAssignableFrom(type)) .Each(type => adapter.RegisterAsSingleton(type)); BuildManager.ConcreteTypes .Where(type => KnownTypes.PerRequestTaskType.IsAssignableFrom(type)) .Each(type => adapter.RegisterAsPerRequest(type)); adapter.RegisterInstance <IServiceRegistrar>(adapter) .RegisterInstance <IDependencyResolver>(adapter) .RegisterInstance <IServiceInjector>(adapter) .RegisterInstance <ContainerAdapter>(adapter) .RegisterInstance <IBootstrapperTasksRegistry>(BootstrapperTasks) .RegisterInstance <IPerRequestTasksRegistry>(PerRequestTasks) .RegisterInstance <TypeMappingRegistry <Controller, IActionInvoker> >(new TypeMappingRegistry <Controller, IActionInvoker>()) .RegisterInstance <TypeMappingRegistry <Controller, IControllerActivator> >(new TypeMappingRegistry <Controller, IControllerActivator>()) .RegisterInstance <TypeMappingRegistry <IView, IViewPageActivator> >(new TypeMappingRegistry <IView, IViewPageActivator>()) .RegisterInstance <TypeMappingRegistry <object, IModelBinder> >(new TypeMappingRegistry <object, IModelBinder>()); }