2011-11-16 36 views
71

XML của tôi trông như thế này và tên tập tin là web.configCách đọc phần appSettings trong tệp 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> 

Trong đoạn code khi tôi đọc như thế này

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

Tôi nhận được một giá trị null. Không có ngoại lệ được ném. Đây có phải là cách phù hợp để làm điều đó không?

Trả lời

123

Vì bạn đang truy cập vào một web.config có lẽ bạn nên sử dụng

using System.Web.Configuration; 

WebConfigurationManager.AppSettings["configFile"] 
26

Thêm namespace

using System.Configuration; 

và ở vị trí của

ConfigurationSettings.AppSettings

bạn nên sử dụng

ConfigurationManager.AppSettings

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

Bạn nên thêm System.configuration dll như tài liệu tham khảo và sử dụng System.Configuration.ConfigurationManager.AppSettings["configFile"].ToString

Đừng quên để thêm using tuyên bố ngay từ đầu. Hy vọng nó sẽ giúp.

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; 
    } 
Các vấn đề liên quan