2019-03-06_14-02-38.txt

// /buckets/floatr/2019-03-06_14-02-38.txt
2019-03-06_14-02-38.txt view original go back
2019-03-06_14-02-38.txt
            ServiceProvider serviceProvider = services.BuildServiceProvider();
            _logger = serviceProvider.GetRequiredService<ILogger<CommandHandler>>();
            List<Type> ServicesToRegister = AppDomain.CurrentDomain.GetAssemblies()
                       .SelectMany(assembly => assembly.GetTypes())
                       .Where(type => (typeof(IServiceable).IsAssignableFrom(type)))
                       .Where(type => !type.IsInterface)
                       .ToList();
            foreach (var service in ServicesToRegister)
            {
                Type implType = AppDomain.CurrentDomain.GetAssemblies()
                    .SelectMany(assembly => assembly.GetTypes())
                    .Where(type => type.IsAssignableFrom(service))
                    .Where(type => type != typeof(IServiceable))
                    .Where(type => type.IsInterface)
                    .FirstOrDefault();
                services.AddSingleton(implType, service);
                _logger.LogInformation("Added service '" + implType.Name + "' to the service bus.");
            }