Pregunta Lectura de configuraciones desde app.config o web.config en .net


Estoy trabajando en una biblioteca de clase C # que necesita poder leer configuraciones de web.config o app.config archivo (dependiendo de si se hace referencia a la DLL desde una aplicación web ASP.NET o una aplicación de Windows Forms).

He encontrado eso

ConfigurationSettings.AppSettings.Get("MySetting")

funciona, pero ese código ha sido marcado como obsoleto por Microsoft.

He leído que debería estar usando:

ConfigurationManager.AppSettings["MySetting"]

sin embargo, el System.Configuration.ConfigurationManager la clase no parece estar disponible desde un proyecto de biblioteca de clase C #.

¿Alguien sabe cuál es la mejor manera de hacer esto?


616
2017-07-27 16:58


origen


Respuestas:


Necesitarás agregar una referencia a System.Configuration en tu proyecto carpeta de referencias.

Definitivamente deberías estar usando el ConfigurationManager sobre lo obsoleto ConfigurationSettings.


652
2017-07-27 17:00



Para Sample App.config como a continuación:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="countoffiles" value="7" />
    <add key="logfilelocation" value="abc.txt" />
  </appSettings>
</configuration>

Usted lee la configuración de la aplicación anterior usando el código que se muestra a continuación:

using System.Configuration;

También es posible que deba agregar una referencia a System.Configuration en su proyecto si todavía no hay uno. A continuación, puede acceder a los valores de esta manera:

string configvalue1 = ConfigurationManager.AppSettings["countoffiles"];
string configvalue2 = ConfigurationManager.AppSettings["logfilelocation"];

¡Espero que esto ayude!


672
2017-10-15 08:47



Actualización para el marco 4.5 y 4.6; lo siguiente ya no funcionará:

string keyvalue=System.Configuration.ConfigurationManager.AppSettings["keyname"];

Ahora acceda a la clase Configuración a través de Propiedades:

string keyvalue= Properties.Settings.Default.keyname;

Ver Administrar la configuración de la aplicación para más información.


53
2017-08-21 18:24



Haga clic derecho en la biblioteca de su clase, y elija la opción "Agregar referencias" del menú; y finalmente desde la pestaña .NET, seleccione System.Configuration. Esto incluiría System.Configuration dll en su proyecto.


35
2017-07-27 17:51



Estoy usando esto y me funciona bien

textBox1.Text = ConfigurationManager.AppSettings["Name"];

28
2017-11-30 23:15



Debe agregar al proyecto una referencia al ensamblaje System.Configuration.


19
2017-07-27 17:01



Es posible que esté agregando el archivo App.config a una DLL. App.Config funciona solo para proyectos ejecutables, ya que todos los dll toman la configuración del archivo de configuración para el ejecutable ejecutado.

Supongamos que tiene dos proyectos en su solución:

  • SomeDll
  • SomeExe

Su problema podría estar relacionado con el hecho de que está incluyendo la aplicación.config en SomeDLL y no en SomeExe. SomeDll puede leer la configuración del proyecto SomeExe.


13
2018-06-12 18:59



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();

13
2017-08-07 12:29



Tuve el mismo problema, solo léelos de esta manera:

System.Configuration.ConfigurationSettings.AppSettings["MySetting"]

6
2017-10-16 10:53