วิธีอ่านส่วน appSettings ในไฟล์ web.config


93

XML ของฉันมีลักษณะเช่นนี้และชื่อไฟล์คือ 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>

ในรหัสเมื่อฉันอ่านเช่นนี้

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

ฉันได้รับค่าว่าง ไม่มีการโยนข้อยกเว้น วิธีนี้เป็นวิธีที่ถูกต้องหรือไม่?

คำตอบ:


155

เนื่องจากคุณกำลังเข้าถึงweb.configคุณควรใช้

using System.Web.Configuration;

WebConfigurationManager.AppSettings["configFile"]

29

เพิ่มเนมสเปซ

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

0

นี่คือวิธีง่ายๆในการเข้าถึงการตั้งค่า web.config ที่ใดก็ได้ในโครงการ C # ของคุณ

 Properties.Settings.Default

ใช้กรณี:

litBodyText.Text = Properties.Settings.Default.BodyText;
litFootText.Text = Properties.Settings.Default.FooterText;
litHeadText.Text = Properties.Settings.Default.HeaderText;

ไฟล์ Web.config:

  <applicationSettings>
    <myWebSite.Properties.Settings> 
      <setting name="BodyText" serializeAs="String">
        <value>
          &lt;h1&gt;Hello World&lt;/h1&gt;
          &lt;p&gt;
      Ipsum Lorem
          &lt;/p&gt;
        </value>
      </setting>
      <setting name="HeaderText" serializeAs="String">
      My header text
        <value />
      </setting>
      <setting name="FooterText" serializeAs="String">
      My footer text
        <value />
      </setting>
    </myWebSite.Properties.Settings>
  </applicationSettings>

ไม่จำเป็นต้องมีกิจวัตรพิเศษ - ทุกอย่างมีอยู่แล้ว ฉันแปลกใจที่ไม่มีใครตอบวิธีที่ดีที่สุดในการอ่านการตั้งค่าจากไฟล์ web.config ของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.