2012-06-03 28 views
5

Estoy intentando imprimir a Console.Write el valor de la clave name del siguiente archivo app.config.Lectura desde un archivo app.config

<?xml version="1.0" encoding="utf-8" ?> 
    <configuration> 
     <appSettings> 
     <add key="name" value="Chan" /> 
     </appSettings> 
    </configuration> 

código C#:

Console.Write(ConfigurationManager.AppSettings["name"]); 

Nada se imprime en la consola. Por qué es esto ?

Nota: He añadido una referencia a la DLL System.Configuration

+0

podría pegar el contenido de su app.config? también, el app.config se encuentra en el ensamblado que se está compilando? – ivowiblo

+0

Lo siento, pensé que lo había incluido antes. – Illep

+3

podría comprobar que se está copiando en el directorio bin, pero con el nombre cambiado a .config (es decir, MyProject.Exe.Config)? – ivowiblo

Respuesta

4

El siguiente código le proporciona el contenido del archivo de configuración activo.

var content = File.ReadAllLines(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile); 

comprobar lo que se obtiene como content, es que contiene key="name" value="Chan" o algo más ?

si dan a continuación <add key="name" value="Chan" /> ConfigurationManager.AppSettings [ "nombre"] debe devolver como Chan

-1

Teniendo en cuenta que el archivo XML (app.config) es formato correcto, tratar a continuación.
Declare una variable y asigne a la variable el valor de AppSettings. Similar como-

string sName = ""; 
sName = ConfigurationManager.AppSettings["name"].ToString(); 
+0

No estoy seguro de por qué recibir estas votaciones negativas, pero lo anterior funciona para mí. Espero que alguien me explique mi culpa. Gracias. –

+1

Copiar el valor de una cadena no ayudará de todos modos. Su respuesta es incorrecta, es por eso que está recibiendo los votos a favor – nunespascal

+0

Creo que el usuario puede averiguar lo que estoy tratando de decir. Acabo de proporcionar una forma de verificar (durante la depuración) si el valor se está leyendo en realidad. Si el archivo XML está formateado correctamente, no entiendo por qué lo anterior NO funcionará. –

Cuestiones relacionadas