示例#1
0
		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>();
		}
示例#2
0
        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);
        }
示例#3
0
 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);
 }