2011-11-16 38 views
71

我的XML看起来像这样和文件名是web.config如何阅读web.config文件中的appSettings部分?

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

在代码中,当我读到这样的

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

我得到一个空值。没有例外被抛出。 这是正确的做法吗?

回答

123

既然你访问一个web.config你应该使用

using System.Web.Configuration; 

WebConfigurationManager.AppSettings["configFile"] 
26

添加命名空间

using System.Configuration; 

和到位的

ConfigurationSettings.AppSettings

你应该使用

ConfigurationManager.AppSettings

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

您应该添加System.configuration DLL作为参考和使用System.Configuration.ConfigurationManager.AppSettings["configFile"].ToString

不要忘记添加using声明在开始。希望它会有所帮助。

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; 
    }