¿Alguien puede ayudarme cómo puedo establecer/almacenar valores en el archivo app.config usando C#, es posible?Escribir valores en el archivo app.config
Respuesta
Si está utilizando App.Config para almacenar valores en <app Key="" Value="" />
o sección CustomSections use la clase ConfigurationManager, de lo contrario use la clase XMLDocument.
Usted podría utilizar el código publicado en CodeProject
Sí se puede - ver ConfigurationManager
El ConfigurationManager clase incluye a los miembros que le permiten realizar las siguientes tareas:
- leer y escribir archivos de configuración en su conjunto.
aprender a usar el docs, que debe ser su primer puerto de llamada para una pregunta como esta.
Pruebe el siguiente código:
Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
config.AppSettings.Settings.Add("YourKey", "YourValue");
config.Save(ConfigurationSaveMode.Minimal);
Funcionó para mí :-)
En el marco 4.5 [ "clave" AppSettings.Settings ] parte de ConfigurationManager es de solo lectura, así que tuve que quitar primero la clave y luego agregarla usando lo siguiente:
Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
config.AppSettings.Settings.Remove("MySetting");
config.AppSettings.Settings.Add("MySetting", "some value");
config.Save(ConfigurationSaveMode.Modified);
No se preocupe, no obtendrá una excepción si intenta Eliminar una clave que no existe.
Este post da un buen consejo
private static string GetSetting(string key)
{
return ConfigurationManager.AppSettings[key];
}
private static void SetSetting(string key, string value)
{
Configuration configuration =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
configuration.AppSettings.Settings[key].Value = value;
configuration.Save(ConfigurationSaveMode.Full, true);
ConfigurationManager.RefreshSection("appSettings");
}
Tuve que agregar configuration.AppSettings.Settings.Add (value); before configuration.AppSettings.Settings [key] .Value = value; para hacer que esto funcione cuando el archivo .config estaba vacío. –
Al usar 'Settings.Add()', si la entrada no existe, se agregará, si ya existe, el valor se agregará a los valores existentes separados por una coma. P.ej. después de llamar 'Settings.Add (" myKey "," test ")' 4 veces, su entrada se convertirá en: '
ConfigurationManager.RefreshSection ("appSettings "); era la clave para mí, si no haces eso, leer valores recién escritos no funcionará. –
string filePath = System.IO.Path.GetFullPath("settings.app.config");
var map = new ExeConfigurationFileMap { ExeConfigFilename = filePath };
try
{
// Open App.Config of executable
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
// Add an Application Setting if not exist
config.AppSettings.Settings.Add("key1", "value1");
config.AppSettings.Settings.Add("key2", "value2");
// Save the changes in App.config file.
config.Save(ConfigurationSaveMode.Modified);
// Force a reload of a changed section.
ConfigurationManager.RefreshSection("appSettings");
}
catch (ConfigurationErrorsException ex)
{
if (ex.BareMessage == "Root element is missing.")
{
File.Delete(filePath);
return;
}
MessageBox.Show(ex.Message);
}
Para una aplicación de consola .NET 4.0, ninguno de ellos trabajó para mí. Así que utilicé la siguiente continuación y funcionó:
private static void UpdateSetting(string key, string value)
{
Configuration configuration = ConfigurationManager.
OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
configuration.AppSettings.Settings[key].Value = value;
configuration.Save();
ConfigurationManager.RefreshSection("appSettings");
}
intente lo siguiente:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings[key].Value = value;
config.Save();
ConfigurationManager.RefreshSection("appSettings");
Como otros han mencionado, se puede hacer esto con ConfigurationManager.AppSettings.Settings
. Pero: El uso de Settings[key] = value
no funcionará si la clave no existe.
Usando Settings.Add(key, value)
, si la clave ya existe, se unirán al nuevo valor a su valor (s) separados por una coma, algo así como <add key="myKey" value="value1, value2, value3" />
Para evitar estos resultados inesperados, usted tiene que manejar dos escenarios de
- ¿Si la entrada con la clave dada existe? luego actualiza su valor
- si la entrada con la clave dada no existe?a continuación, crear nueva entrada (clave, valor)
Código
public static void Set(string key, string value)
{
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var entry = config.AppSettings.Settings[key];
if (entry == null)
config.AppSettings.Settings.Add(key, value);
else
config.AppSettings.Settings[key].Value = value;
config.Save(ConfigurationSaveMode.Modified);
}
Para obtener más información sobre el cheque entry == null
, comprobar this post.
Espero que esto ayude a alguien.
- 1. Escribir secciones personalizadas en app.config
- 2. Cómo escribir valores vectoriales en un archivo
- 3. Unidad probando el archivo app.config con NUnit
- 4. crear archivo ini, escribir valores en PHP
- 5. al leer el archivo app.config
- 6. Cómo escribir una cadena URI en App.Config
- 7. ¿Podemos declarar variables en el archivo app.config
- 8. ¿Puedo agregar condiciones en el archivo app.config?
- 9. mono ignora dllmaps en el archivo app.config
- 10. app.config múltiples valores de clave única
- 11. Cómo escribir en app.config en el proyecto de instalación y usarlo en el programa
- 12. archivo app.config configuración vs
- 13. Encriptación app.config Archivo
- 14. Añadir a los valores App.config y recuperarlos
- 15. Cambie el valor en el archivo app.config dinámicamente
- 16. app.config no están ahorrando los valores
- 17. Escribir excepciones en el archivo
- 18. Escribir bytes en el archivo
- 19. escribir valores enteros en un archivo utilizando out.write()
- 20. App.Config vs archivo XML personalizado
- 21. Lectura desde un archivo app.config
- 22. escribir valores Subíndice en VBA
- 23. ¿Cómo escribo una fecha en el archivo app.config?
- 24. Cómo agregar el archivo App.Config en la aplicación de consola
- 25. Manipulación del archivo app.config para pruebas unitarias
- 26. Lua: escribir valores hexadecimales como un archivo binario
- 27. Archivo App.Config en la aplicación de consola C#
- 28. C# 'configuración de la aplicación archivo "app.config" ... ¿cómo almacenar colecciones?
- 29. ¿Cómo escribir en el archivo en Ruby?
- 30. App.config: el atributo "archivo" de appSettings no está leyendo el archivo Local.config
¿Has buscado esto en google? –
¿Podría ser un poco más específico? ¿Qué tipo de valor quieres almacenar y cuándo? En general, no se recomienda almacenar valores de toda la Aplicación (como cadenas o entradas) en la configuración de la aplicación. – Mantisen
Hacer una pregunta que parece estúpida por los profesionales está bien, todo el mundo comienza por el principio. Sin embargo, ni siquiera tomar una búsqueda de Google simpe es simplemente cojo. –