private void BackFillDefaults() { if (_validated) { return; } LoggerFactory = LoggerFactory ?? new LoggerFactory(); _serializer = _serializer ?? new PayloadSerializer(); _protector = _protector ?? new PayloadProtector(); _cronProvider = _cronProvider ?? new CronProvider(); _resolver = _resolver ?? new DependencyResolver(_services, GetConfiguredAssemblies()); _dispatcher = _dispatcher ?? new WorkDispatcher(_resolver); _services.Add(typeof(ILoggerFactory), LoggerFactory); _services.Add(typeof(IPayloadProtector), _protector); _services.Add(typeof(IPayloadSerializer), _serializer); _services.Add(typeof(IWorkDispatcher), _dispatcher); Validate(); var logger = LoggerFactory.CreateLogger <QuidjiboBuilder>(); logger.LogDebug("Work Factory : {WorkerFactory}", WorkProviderFactory.GetType().Name); logger.LogDebug("Schedule Factory : {ScheduleFactory}", ScheduleProviderFactory.GetType().Name); logger.LogDebug("Progress Factory : {ProgressFactory}", ProgressProviderFactory.GetType().Name); logger.LogDebug("Serializer : {Serializer}", _serializer.GetType().Name); logger.LogDebug("Protector : {Protector}", _protector.GetType().Name); logger.LogDebug("Cron : {Cron}", _cronProvider.GetType().Name); logger.LogDebug("Resolver: {Resolver}", _resolver.GetType().Name); logger.LogDebug("Dispatcher: {Dispatcher}", _dispatcher.GetType().Name); }