Пример #1
0
        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>());
        }