/// <summary> /// Create an instance of the WatchedConfigurationSource, add listeners, and wait for the update callbacks. /// </summary> /// <param name="source"></param> /// <param name="ignoreDeletesFromSource"></param> /// <param name="updater"></param> public DynamicWatchedConfiguration(IWatchedConfigurationSource source, bool ignoreDeletesFromSource, DynamicPropertyUpdater updater) { m_Source = source; IgnoreDeletesFromSource = ignoreDeletesFromSource; m_Updater = updater; // Get a current snapshot of the config source data try { var currentData = source.GetCurrentData(); var result = WatchedUpdateResult.CreateFull(currentData); UpdateConfiguration(result); } catch (Exception ex) { m_Log.Error("Could not GetCurrentData() from the WatchedConfigurationSource", ex); } // Add a listener for subsequent config updates m_Source.ConfigurationUpdated += Source_ConfigurationUpdated; }
/// <summary> /// Simplified constructor with the following defaults: /// ignoreDeletesFromSource = false /// dynamicPropertyUpdater = new <see cref="DynamicPropertyUpdater"/> /// </summary> /// <param name="source"></param> public DynamicWatchedConfiguration(IWatchedConfigurationSource source) : this(source, false, new DynamicPropertyUpdater()) { }