Hola. Estoy tratando de guardar una variable string en mi archivo de configuracion pero no está funcionando como si lo hace en otro proyecto
Hice click derecho en mi proyecto, propiedades, configuración y agregué una variable de tipo string y le asigno un texto. Después uso esta función para modificarlo
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Remove("Tema");
config.AppSettings.Settings.Add("Tema", "Oscuro");
config.Save(ConfigurationSaveMode.Modified);
El problema es que cuando pongo el cursor sobre el config.AppSetting.Setting (antes de hacer el remove) me dice que no tengo ningún parámetro agregado (siendo que lo agregué al principio).
El archivo App.config me aparece así (con la variable que yo cree manualmente)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Sistema.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
</startup>
<applicationSettings>
<Sistema.Properties.Settings>
<setting name="Tema" serializeAs="String">
<value>Claro</value>
</setting>
</Sistema.Properties.Settings>
</applicationSettings>
</configuration>
Pero la variable que creo con código me aparece dentro del archivo Sistema.exe.Config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="Sistema.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<appSettings>
<add key="Tema" value="Oscuro" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
</startup>
<applicationSettings>
<Sistema.Properties.Settings>
<setting name="Tema" serializeAs="String">
<value>Claro</value>
</setting>
</Sistema.Properties.Settings>
</applicationSettings>
</configuration>
En ese archivo me aparecen las dos, la que cree manualmente y la que cree con código. Porque me aparecen dos distintas ??
Para tomar el valor de esa variable uso la siguiente linea
if (Properties.Settings.Default.Tema == "Claro")
{
c.ModoClaro(this);
}
else
{
c.ModoOscuro(this);
}
El problema es que ese valor no cambia nunca. Como puedo hacer para que cambie ese o poder leer el otro valor?