Esempio n. 1
0
        public static IModularityConfiguration ConfigureBootstrapperOptions(this IModularityConfiguration configuration,
                                                                            Action <BootstrapperOptions> action)
        {
            configuration.ServiceCollection.Configure <BootstrapperOptions>(action);

            return(configuration);
        }
Esempio n. 2
0
        public static IModularityConfiguration UseStaticCatalog(this IModularityConfiguration configuration,
                                                                params Assembly[] assemblies)
        {
            configuration.ServiceCollection.AddSingleton <IAssemblyCatalog>(new StaticAssemblyCatalog(assemblies));

            return(configuration);
        }
Esempio n. 3
0
        private void ObtainConfiguredModules()
        {
            if (_modulesConfigured)
            {
                return;
            }

            _modulesConfigured = true;
            IConfigurationService    configurationService    = ServiceLocator.Current.GetInstance <IConfigurationService>();
            IModularityConfiguration modularityConfiguration = configurationService.Get <IModularityConfiguration>();
            IModulesRepository       modulesRepository       = ServiceLocator.Current.GetInstance <IModulesRepository>();

            string[] moduleNames = modularityConfiguration.Modules;
            if (moduleNames != null)
            {
                foreach (string moduleName in moduleNames)
                {
                    try
                    {
                        IModule module = modulesRepository.GetInstance(moduleName);
                        modulesRepository.RegisterInstance(module);
                        module.Initialize(_cancellationToken);
                    }
                    catch (Exception ex)
                    {
                        _log.Error($"Failed to register Module with name '{moduleName}'.", ex);
                    }
                }
            }
        }
        public static IModularityConfiguration UseDirectoryCatalog(this IModularityConfiguration configuration,
                                                                   string basePath, string[] patterns)
        {
            configuration.ServiceCollection.Configure <DirectoryAssemblyCatalogOptions>(options =>
            {
                options.BasePath = basePath;
                options.Patterns = patterns;
            });

            configuration.ServiceCollection.AddSingleton <IAssemblyCatalog, DirectoryAssemblyCatalog>();

            return(configuration);
        }