示例#1
0
        /// <summary>
        /// Add and configure services
        /// </summary>
        /// <param name="services">Collection of service descriptors</param>
        /// <param name="configuration">Configuration of the application</param>
        /// <param name="nopConfig">Nop configuration parameters</param>
        public void ConfigureServices(IServiceCollection services, IConfiguration configuration, LiteConfig liteConfig)
        {
            //find startup configurations provided by other assemblies
            _typeFinder = new WebAppTypeFinder();
            var startupConfigurations = _typeFinder.FindClassesOfType <ILiteStartup>();

            //create and sort instances of startup configurations
            var instances = startupConfigurations
                            .Select(startup => (ILiteStartup)Activator.CreateInstance(startup))
                            .OrderBy(startup => startup.Order);

            //configure services
            foreach (var instance in instances)
            {
                instance.ConfigureServices(services, configuration);
            }

            //register mapper configurations
            AddAutoMapper(services, _typeFinder);

            //run startup tasks
            RunStartupTasks(_typeFinder);

            //resolve assemblies here. otherwise, plugins can throw an exception when rendering views
            AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
        }
示例#2
0
 public ProfileStorage(IMemoryCache cache, ILiteConfigService liteConfigService)
 {
     _cache      = cache;
     _liteConfig = liteConfigService.GetDefaults();
 }