2011-11-16 21 views
71

Mi XML se parece a esto y el nombre del archivo es web.config¿Cómo se lee la sección AppSettings en el archivo web.config?

<?xml version="1.0"?> 
<configuration> 
    <appSettings> 
    <add key="configFile" value="IIS.config"/> 
    <add key="RialtoDomain" value="ASNC_AUDITORS"/>  
    </appSettings> 
    <system.serviceModel> 
    .... 
    </system.serviceModel> 
</configuration> 

En el código cuando leí como esto

String path = ConfigurationSettings.AppSettings["configFile"]; 

estoy recibiendo un valor nulo. No se arroja ninguna excepción. ¿Es esta la manera correcta de hacerlo?

Respuesta

123

Puesto que usted está accediendo a un web.config probablemente debería utilizar

using System.Web.Configuration; 

WebConfigurationManager.AppSettings["configFile"] 
26

Añadir espacio de nombres

using System.Configuration; 

y en lugar de

ConfigurationSettings.AppSettings

se debe utilizar

ConfigurationManager.AppSettings

String path = ConfigurationManager.AppSettings["configFile"]; 
4

se debe añadir System.Configuration DLL como referencia y utilizar System.Configuration.ConfigurationManager.AppSettings["configFile"].ToString

No se olvide de añadir using declaración al comienzo. Espero que ayude

0
using System.Configuration; 

    /// <summary> 
    /// For read one setting 
    /// </summary> 
    /// <param name="key">Key correspondent a your setting</param> 
    /// <returns>Return the String contains the value to setting</returns> 
    public string ReadSetting(string key) 
    { 
     var appSettings = ConfigurationManager.AppSettings; 
     return appSettings[key] ?? string.Empty; 
    } 

    /// <summary> 
    /// Read all settings for output Dictionary<string,string> 
    /// </summary>   
    /// <returns>Return the Dictionary<string,string> contains all settings</returns> 
    public Dictionary<string, string> ReadAllSettings() 
    { 
     var result = new Dictionary<string, string>(); 
     foreach (var key in ConfigurationManager.AppSettings.AllKeys) 
      result.Add(key, ConfigurationManager.AppSettings[key]); 
     return result; 
    } 
Cuestiones relacionadas