public void RemovingAndAddingSection() { SystemConfigurationSource.ResetImplementation(true); SystemConfigurationSource sysSource = new SystemConfigurationSource(); DummySection dummySection = sysSource.GetSection(localSection) as DummySection; Assert.IsTrue(dummySection != null); Thread.Sleep(300); System.Configuration.Configuration rwConfiguration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); string fileName = rwConfiguration.FilePath; int numSections = rwConfiguration.Sections.Count; FileConfigurationParameter parameter = new FileConfigurationParameter(fileName); sysSource.Remove(parameter, localSection); Thread.Sleep(300); rwConfiguration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); Assert.AreEqual(rwConfiguration.Sections.Count, numSections - 1); sysSource.Add(parameter, localSection, new DummySection()); Thread.Sleep(300); rwConfiguration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); Assert.AreEqual(rwConfiguration.Sections.Count, numSections); }
public void RemoveIsReflectedInNextRequestWithoutRefresh() { string otherConfigurationFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Other.config"); FileConfigurationParameter parameter = new FileConfigurationParameter(otherConfigurationFile); FileConfigurationSource.ResetImplementation(otherConfigurationFile, false); try { File.Copy(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, otherConfigurationFile); FileConfigurationSource otherSource = new FileConfigurationSource(otherConfigurationFile); DummySection otherSection = otherSource.GetSection(localSection) as DummySection; DummySection newSection = new DummySection(); newSection.Value = 13; otherSource.Add(parameter, localSection, newSection); otherSource.Remove(parameter, localSection); otherSection = otherSource.GetSection(localSection) as DummySection; Assert.IsNull(otherSection); } finally { FileConfigurationSource.ResetImplementation(otherConfigurationFile, true); if (File.Exists(otherConfigurationFile)) { File.Delete(otherConfigurationFile); } } }
public void SavingWithEmptyProtectionProviderThrowsArgumentException() { string configurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; FileConfigurationSource fileConfigSource = new FileConfigurationSource(configurationFile); FileConfigurationParameter parameter = new FileConfigurationParameter(configurationFile); DummySection newSection = new DummySection(); fileConfigSource.Add(parameter, localSection, newSection, string.Empty); }
public void AddingUnprotectedSectionsWithProtectionProviderWillProtectThem() { DummySection dummySection = new DummySection(); string configurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; FileConfigurationSource fileConfigSource = new FileConfigurationSource(configurationFile); FileConfigurationParameter parameter = new FileConfigurationParameter(configurationFile); fileConfigSource.Add(parameter, protectedSection, dummySection, ProtectedConfiguration.DefaultProvider); FileConfigurationSource.ResetImplementation(configurationFile, true); ConfigurationSection section = fileConfigSource.GetSection(protectedSection); Assert.IsTrue(section.SectionInformation.IsProtected); Assert.IsNotNull(section.SectionInformation); Assert.AreEqual(ProtectedConfiguration.DefaultProvider, section.SectionInformation.ProtectionProvider.Name); }
public void ChangeInExternalConfigSourceIsDetected() { ConfigurationChangeWatcher.SetDefaultPollDelayInMilliseconds(50); string otherConfigurationFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Other.config"); FileConfigurationParameter parameter = new FileConfigurationParameter(otherConfigurationFile); FileConfigurationSource.ResetImplementation(otherConfigurationFile, true); try { File.Copy(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, otherConfigurationFile); FileConfigurationSource otherSource = new FileConfigurationSource(otherConfigurationFile); DummySection rwSection; System.Configuration.Configuration rwConfiguration = ConfigurationManager.OpenExeConfiguration(otherConfigurationFile); rwConfiguration.Sections.Remove(externalSection); rwConfiguration.Sections.Add(externalSection, rwSection = new DummySection()); rwSection.Name = externalSection; rwSection.Value = 12; rwSection.SectionInformation.ConfigSource = externalSectionSource; rwConfiguration.Save(ConfigurationSaveMode.Full); DummySection otherSection = otherSource.GetSection(externalSection) as DummySection; Assert.AreEqual(12, otherSection.Value); rwSection.Value = 13; rwConfiguration.Save(ConfigurationSaveMode.Modified); Thread.Sleep(150); otherSection = otherSource.GetSection(externalSection) as DummySection; Assert.AreEqual(13, otherSection.Value); } finally { ConfigurationChangeWatcher.ResetDefaultPollDelay(); FileConfigurationSource.ResetImplementation(otherConfigurationFile, true); if (File.Exists(otherConfigurationFile)) { File.Delete(otherConfigurationFile); } } }
/// <exclude /> public static void SaveConfigurationSection(string sectionName, ConfigurationSection configurationSection) { using (GlobalInitializerFacade.CoreLockScope) { lock (_lock) { string tempFilePath = ConfigurationServices.TempRandomConfigFilePath; C1File.Copy(FileConfigurationSourcePath, tempFilePath); FileConfigurationParameter configurationParameter = new FileConfigurationParameter(tempFilePath); ConfigurationServices.ConfigurationSource.Add(configurationParameter, sectionName, configurationSection); // Kill monitoring of file changes: // FileConfigurationSource.ResetImplementation(ConfigurationServices.FileConfigurationSourcePath, false); C1File.Copy(tempFilePath, ConfigurationServices.FileConfigurationSourcePath, true); DeleteTempConfigurationFile(tempFilePath); _configurationSource = new FileConfigurationSource(ConfigurationServices.FileConfigurationSourcePath); // Kill monitoring of file changes: // FileConfigurationSource.ResetImplementation(ConfigurationServices.FileConfigurationSourcePath, false); } } }