getsection example connectionstrings configurationsettings app c# .net appsettings configurationmanager

example - configurationmanager.connectionstrings c#



AppSettings obtiene valor del archivo.config (12)

No puedo acceder a los valores en el archivo de configuración.

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); var clientsFilePath = config.AppSettings.Settings["ClientsFilePath"].Value; // the second line gets a NullReferenceException

archivo .config :

<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <!-- ... --> <add key="ClientsFilePath" value="filepath"/> <!-- ... --> </appSettings> </configuration>

¿Tienes alguna sugerencia qué debería hacer?


Algunas de las respuestas parecen un poco fuera de IMO Aquí está mi toma alrededor del año 2016

<add key="ClientsFilePath" value="filepath"/>

Asegúrese de que se hace referencia a System.Configuration .

La pregunta es preguntar por el valor de una tecla de aplicación

Lo cual ciertamente DEBE ser

string yourKeyValue = ConfigurationManager.AppSettings["ClientsFilePath"] //yourKeyValue should hold on the HEAP "filepath"

Aquí hay un giro en el que puede agrupar valores (no para esta pregunta)

var emails = ConfigurationManager.AppSettings[ConfigurationManager.AppSettings["Environment"] + "_Emails"];

emails serán el valor de la Clave del Entorno + "_Emails"

example : [email protected];[email protected];


Dale una oportunidad:

string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];


En el archivo .config de la aplicación / web configure la siguiente configuración:

<configuration> <appSettings> <add key="NameForTheKey" value="ValueForThisKey" /> ... ... </appSettings> ... ... </configuration>

entonces puedes acceder a esto en tu código al poner en esta línea:

string myVar = System.Configuration.ConfigurationManager.AppSettings["NameForTheKey"];

* Tenga en cuenta que esto funciona bien para .net4.5.x y .net4.6.x; pero no funcionan para .net core. Saludos cordiales: Rafael


Esto funciona para mí:

string value = System.Configuration.ConfigurationManager.AppSettings[key];


Estoy usando:

ExeConfigurationFileMap configMap = new ExeConfigurationFileMap(); //configMap.ExeConfigFilename = @"d:/test/justAConfigFile.config.whateverYouLikeExtension"; configMap.ExeConfigFilename = AppDomain.CurrentDomain.BaseDirectory + ServiceConstants.FILE_SETTING; Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None); value1 = System.Configuration.ConfigurationManager.AppSettings["NewKey0"]; value2 = config.AppSettings.Settings["NewKey0"].Value; value3 = ConfigurationManager.AppSettings["NewKey0"];

Donde value1 = ... y value3 = ... da null y value2 = ... funciona

Luego, decidí reemplazar la aplicación interna.config con:

// Note works in service but not in wpf AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"d:/test/justAConfigFile.config.whateverYouLikeExtension"); ConfigurationManager.RefreshSection("appSettings"); string value = ConfigurationManager.AppSettings["NewKey0"];

Usando VS2012 .net 4


La respuesta que dio dtsg funciona:

string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];

PERO, debe agregar una referencia de ensamblaje a

Configuración del sistema

Vaya a su Solution Explorer y haga clic derecho en Referencias y seleccione Agregar referencia . Seleccione la pestaña Ensamblajes y busque Configuración .

Aquí hay un ejemplo de mi App.config :

<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <appSettings> <add key="AdminName" value="My Name"/> <add key="AdminEMail" value="MyEMailAddress"/> </appSettings> </configuration>

Que puedes obtener de la siguiente manera:

string adminName = ConfigurationManager.AppSettings["AdminName"];


Leer desde la configuración:

Deberá agregar una referencia a Config

  1. Abra "Propiedades" en su proyecto
  2. Ir a la pestaña "Configuración"
  3. Agregar "Nombre" y "Valor"
  4. Obtenga valor con el uso del siguiente código:

    string value = Properties.Settings.Default.keyname;

Guardar en Config:

Properties.Settings.Default.keyName = value; Properties.Settings.Default.Save();


Mi prueba simple también falló, siguiendo el consejo de las otras respuestas aquí, hasta que me di cuenta de que el archivo de configuración que agregué a mi aplicación de escritorio recibió el nombre "App1.config". Cambié el nombre a "App.config" y todo funcionó de inmediato como debería.


Mira, hice lo que pensé que era lo más obvio:

string filePath = ConfigurationManager.AppSettings.GetValues("ClientsFilePath").ToString();

Mientras compila, siempre devuelve nulo.

Sin embargo, esto (desde arriba) funciona:

string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];


Para la aplicación web, normalmente escribiré este método y solo lo llamaré con la clave.

private String GetConfigValue(String key) { return System.Web.Configuration.WebConfigurationManager.AppSettings[key].ToString(); }


Simplemente puede escribir:

string filePath = Sysem.Configuration.ConfigurationManager.AppSettings[key.ToString()];

porque la key es un objeto y AppSettings toma una cadena


Volviendo a este después de un largo tiempo ...

Dado el fallecimiento de ConfigurationManager, para cualquiera que todavía esté buscando una respuesta a esta prueba (por ejemplo):

AppSettingsReader appsettingsreader = new AppSettingsReader(); string timeAsString = (string)(new AppSettingsReader().GetValue("Service.Instance.Trigger.Time", typeof(string)));

Requiere System.Configuration por supuesto.

(Editó el código en algo que realmente funciona y es más fácil de leer)