2012-06-03 33 views
5

Sto tentando di stampare su Console.Write il valore della chiave name dal seguente file app.config.Lettura da un file app.config

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

codice C#:

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

Nulla viene stampato nella console. Perchè è questo ?

Nota: ho aggiunto un riferimento al System.Configuration dll

+0

si potrebbe incollare il contenuto del vostro app.config? inoltre, app.config si trova nell'assembly che viene compilato? – ivowiblo

+0

Scusa, pensavo di averlo incluso prima. – Illep

+3

potresti verificare che venga copiato nella directory bin, ma con il nome modificato in .config (cioè MyProject.Exe.Config)? – ivowiblo

risposta

4

sotto il codice fornisce il contenuto del file di configurazione attivo.

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

controllare quello che si ottiene come content, è contiene key="name" value="Chan" o qualcos'altro ?

se dato allora <add key="name" value="Chan" /> ConfigurationManager.AppSettings [ "nome"] dovrebbe ritorno, Chan

-1

Dato che il file XML (app.config) è formattato correttamente, provare qui di seguito.
Dichiarare una variabile e assegnare alla variabile il valore AppSettings. Simili:

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

Non so perché ottenere queste votazioni negative, ma quanto sopra funziona per me. Spero che qualcuno mi spieghi la mia colpa Grazie –

+1

Copiare il valore in una stringa non aiuterà In ogni caso, la tua risposta è sbagliata, ecco perché stai ottenendo i downvotes. – nunespascal

+0

Penso che l'utente possa capire cosa sto cercando di dire. Ho appena fornito un modo per controllare (durante il debug) se il valore è stato effettivamente letto Se il file XML è formattato correttamente, non capisco perché il precedente non funzionerà –