c# - una - Cómo cambiar en la configuración de la aplicación de tiempo de ejecución
configuración de aplicaciones predeterminadas (3)
El archivo AppSettings no está diseñado para ser editable. Está diseñado para almacenar configuraciones que no cambiarán en el tiempo de ejecución pero que podrían cambiar con el tiempo, es decir: cadenas de conexión DB, URL de servicio web, etc.
Por lo tanto, si bien es posible actualizar el archivo en realidad, debe volver a evaluar si este valor debe almacenarse allí.
Intento cambiar en tiempo de ejecución una clave del archivo de configuración de mis aplicaciones, pero no funciona.
Lo hago de esa manera:
ConfigurationSettings.AppSettings["XPTO"] = "HELLO";
Parece que solo cambia en la memoria, no en el archivo.
¿Alguien sabe cómo hacer esto?
Gracias.
Suponiendo que su aplicación tiene permisos de escritura en el archivo ...
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); // the config that applies to all users
AppSettingsSection appSettings = config.AppSettings;
if (appSettings.IsReadOnly() == false)
{
appSettings("Key").Value = "new value";
config.Save();
}
Estoy ignorando todas las posibles excepciones que pueden arrojarse ...
Eche un vistazo a mi descripción general de los archivos de configuración de .NET ... En resumen, creo que desea una configuración con un criterio de usuario. Se comportará más de lo que esperabas.
Editar: si está usando el diseñador de configuraciones en Visual Studio , simplemente cambie el "Alcance" a "Usuario". De lo contrario, debería poder hacer el equivalente programáticamente.