public void NoSectionStorageTest() { using (ConfigurationContext configurationContext = CreateConfigurationContext(NoSectionXmlString)) { StorageProviderFactory factory = new StorageProviderFactory(configurationContext); IStorageProviderReader storage = factory.Create(applConfig1) as IStorageProviderReader; Assert.AreSame(storage.GetType(), typeof(XmlFileStorageProvider)); storage.Read(); Assert.Fail("Should never get here since the section is not specified in the external configuration file."); } }
public void StorageTest() { using (ConfigurationContext configurationContext = CreateConfigurationContext(XmlString)) { StorageProviderFactory factory = new StorageProviderFactory(configurationContext); IStorageProviderReader storage = factory.Create(applConfig1) as IStorageProviderReader; Assert.AreSame(storage.GetType(), typeof(XmlFileStorageProvider)); ((IStorageProviderWriter)storage).Write(GetData()); XmlNode data = storage.Read() as XmlNode; Assert.AreEqual(GetData().OuterXml, data.OuterXml); } }
public void StorageTestWithEncryption() { SaveKeyAlgorithmPair(XmlStringWithEncryption); using (ConfigurationContext configurationContext = CreateConfigurationContext(XmlStringWithEncryption)) { using (FileStream s = new FileStream(Path.GetFullPath(testConfigFile), FileMode.Create)) { for (int i = 0; i < 1000; i++) { byte b = 0; s.WriteByte(b); } } StorageProviderFactory factory = new StorageProviderFactory(configurationContext); IStorageProviderReader storage = factory.Create(applConfig1) as IStorageProviderReader; Assert.AreSame(storage.GetType(), typeof(XmlFileStorageProvider)); ((IStorageProviderWriter)storage).Write(GetData()); XmlNode data = storage.Read() as XmlNode; Assert.AreEqual(GetData().OuterXml, data.OuterXml); } }
/// <summary> /// <para> /// Reads configuration settings for a user-defined configuration section. /// </para> /// </summary> /// <param name="sectionName"> /// <para>The configuration section to read.</para> /// </param> /// <returns> /// <para>The configuration settings for <paramref name="sectionName"/>.</para> /// </returns> /// <exception cref="ArgumentException"> /// <para><paramref name="sectionName"/>can not be <see langword="null"/> (Nothing in Visual Basic).</para> /// </exception> /// <exception cref="ConfigurationException"> /// <para><paramref name="sectionName"/> is not valid for this configuration.</para> /// </exception> public object ReadConfiguration(string sectionName) { ValidateSection(sectionName); object configurationSection = sections.GetSection(sectionName); if (IsConfigurationSectionCached(configurationSection)) { return(configurationSection); } IStorageProviderReader storageProviderReader = CreateStorageProvider(sectionName); object configurationSettings = storageProviderReader.Read(); if (configurationSettings == null) { return(null); } ITransformer transformer = CreateTransformer(sectionName); if (transformer != null) { configurationSection = transformer.Deserialize(configurationSettings); } else { configurationSection = configurationSettings; } ConfigurationChangedEventHandler changed = new ConfigurationChangedEventHandler(OnExternalConfigurationChanged); sections.AddSection(sectionName, configurationSection, changed, storageProviderReader); return(configurationSection); }