internal ConfigurationProvider( Action <Exception> errorCallback, Action <object, IConfigurationSource> settingsCallback, IObservableBinder observableBinder, ISourceDataCache sourceDataCache, ICurrentValueProviderFactory currentValueProviderFactory, TimeSpan sourceRetryCooldown = default) { this.errorCallback = new ErrorCallbackDecorator(errorCallback).Invoke; this.settingsCallback = new SettingsCallbackDecorator(settingsCallback, this.errorCallback).Invoke; this.observableBinder = observableBinder; this.sourceDataCache = sourceDataCache; this.currentValueProviderFactory = currentValueProviderFactory; this.sourceRetryCooldown = sourceRetryCooldown; baseScheduler = new EventLoopScheduler(); scheduler = baseScheduler.Catch <Exception>( exception => { this.errorCallback(exception); return(true); }); }