protected override void Load(ContainerBuilder builder) { builder.RegisterSettingsManager(c => c.WithProvider <LocalConfigurationProvider>()); builder.RegisterType <LocalConfiguration>().As <ILocalConfiguration>().SingleInstance(); builder.Register(c => c.Resolve <IEventAggregator>().GetEvent <ConfigEventDispatcher, IConfigEvent>()).SingleInstance(); builder.RegisterType <ClusterConnectionTracker>().As <IClusterConnectionTracker>().SingleInstance(); builder.RegisterType <DatabaseConfig>().As <IDatabaseConfig>().SingleInstance(); builder.RegisterType <ServerConfigurationApi>().As <IServerConfigurationApi>().SingleInstance(); builder.RegisterType <PropertyChangedNotifer>().As <IPropertyChangedNotifer>().SingleInstance(); builder.RegisterFeature <ClusterNodeManagerRef, IClusterNodeManager>(ClusterHostManagerActor.New()); builder.RegisterFeature <ApiEventDispatcherRef, IApiEventDispatcher>(ApiEventDispatcherActor.New()); builder.RegisterFeature <ProcessServiceHostRef, IProcessServiceHost>(ProcessServiceHostActor.New()); builder.Register(c => DeploymentApi.CreateProxy(c.Resolve <ActorSystem>())).SingleInstance(); builder.Register(c => RepositoryApi.CreateProxy(c.Resolve <ActorSystem>())).SingleInstance(); builder.Register(c => ConfigurationApi.CreateProxy(c.Resolve <ActorSystem>())).SingleInstance(); builder.RegisterStartUpAction <ActorStartUp>(); base.Load(builder); }