public static ChoConfigurationMetaDataState Register(string configSectionName, string metaDataFileName) { ChoGuard.ArgumentNotNullOrEmpty(configSectionName, "ConfigSectionName"); ChoGuard.ArgumentNotNullOrEmpty(metaDataFileName, "MetaDataFileName"); lock (_configMetaData.SyncRoot) { if (_configMetaData.ContainsKey(configSectionName)) { _configMetaData.Remove(configSectionName); } ChoConfigurationMetaDataState configurationMetaDataState = new ChoConfigurationMetaDataState(); _configMetaData.Add(configSectionName, configurationMetaDataState); configurationMetaDataState.ConfigSectionName = configSectionName; configurationMetaDataState.MetaDataFileName = metaDataFileName; configurationMetaDataState.FileWatcher = new ChoFileWatcher(metaDataFileName); configurationMetaDataState.FileWatcher.FileChanged += (target, e) => configurationMetaDataState.OnConfigurationMetaDataChanged(); configurationMetaDataState.FileWatcher.StartWatching(); return(configurationMetaDataState); } }
public static void Unregister(ChoConfigurationMetaDataState configurationMetaDataState) { ChoGuard.ArgumentNotNull(configurationMetaDataState, "ConfigurationMetaDataState"); Unregister(configurationMetaDataState.ConfigSectionName); }