public Instance(IContainer container, XDoc anInstanceXmlConfig) { ContainerBuilder builder = new ContainerBuilder(); var c = new XDocAutofacContainerConfigurator(anInstanceXmlConfig["components"], DreamContainerScope.Factory); c.Configure(container); if (!container.IsRegistered<ISettingsController>()) { XmlSettingsController controller = new XmlSettingsController(anInstanceXmlConfig); builder.Register<ISettingsController>(controller); } if (!container.IsRegistered<IScoreController>()) { builder.Register<ScoreController>().As<IScoreController>(); } if (!container.IsRegistered<IUserController>()) { builder.Register<UserController>().As<IUserController>(); } if (!container.IsRegistered<ISourceController>()) { builder.Register<SourceController>().As<ISourceController>(); } if (!container.IsRegistered<IPlayController>()) { builder.Register<PlayController>().As<IPlayController>(); } if (!container.IsRegistered<IConverterFactory>()) { builder.Register<ConverterFactory>().As<IConverterFactory>(); } if (!container.IsRegistered<IIndexController>()) { builder.Register<IndexController>().As<IIndexController>(); } if (!container.IsRegistered<ISourcePageController>()) { builder.Register<SourcePageController>().As<ISourcePageController>(); } builder.Build(container); ScoreController = container.Resolve<IScoreController>(); UserController = container.Resolve<IUserController>(); SourceController = container.Resolve<ISourceController>(); PlayController = container.Resolve<IPlayController>(); ConverterFactory = container.Resolve<IConverterFactory>(); IndexController = container.Resolve<IIndexController>(); IndexController.Instance = this; SourcePageController = container.Resolve<ISourcePageController>(); }
private void PreInitializeLifetimeScope(IContainer rootContainer, ContainerBuilder lifetimeScopeBuilder, XDoc config) { var components = config["components"]; lifetimeScopeBuilder.RegisterInstance(_timerFactory).ExternallyOwned(); var registrationInspector = new RegistrationInspector(rootContainer); if (!components.IsEmpty) { _log.Debug("registering service level module"); var module = new XDocAutofacContainerConfigurator(components, DreamContainerScope.Service); registrationInspector.Register(module); lifetimeScopeBuilder.RegisterModule(module); } InitializeLifetimeScope(registrationInspector, lifetimeScopeBuilder, config); }
private void PreInitializeLifetimeScope(IContainer rootContainer, ContainerBuilder lifetimeScopeBuilder, XDoc config) { var components = config["components"]; lifetimeScopeBuilder.RegisterInstance(_timerFactory).ExternallyOwned(); var registrationInspector = new RegistrationInspector(rootContainer); if(!components.IsEmpty) { _log.Debug("registering service level module"); var module = new XDocAutofacContainerConfigurator(components, DreamContainerScope.Service); registrationInspector.Register(module); lifetimeScopeBuilder.RegisterModule(module); } InitializeLifetimeScope(registrationInspector, lifetimeScopeBuilder, config); }