【问题标题】:How to read appSettings section in the web.config file?如何阅读 web.config 文件中的 appSettings 部分?
【发布时间】:2011-12-30 03:20:30
【问题描述】:

我的 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"];

我得到一个空值。不会抛出异常。 这是正确的做法吗?

【问题讨论】:

标签: c# asp.net web-config


【解决方案1】:

这是在 C# 项目中的任何位置访问 web.config 设置的简单方法。

 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 文件中读取设置的最佳方法。

【讨论】:

    【解决方案2】:
        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;
        }
    

    【讨论】:

      【解决方案3】:

      添加命名空间

      using System.Configuration;
      

      代替

      ConfigurationSettings.AppSettings

      你应该使用

      ConfigurationManager.AppSettings

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

      【讨论】:

        【解决方案4】:

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

        不要忘记在开头添加usingstatement。希望它会有所帮助。

        【讨论】:

          【解决方案5】:

          由于您正在访问 web.config,您可能应该使用

          using System.Web.Configuration;
          
          WebConfigurationManager.AppSettings["configFile"]
          

          【讨论】:

          • 我在 iis 上部署了一个 .net 6 webapi。我应该使用应用设置文件还是网络配置文件进行设置?
          【解决方案6】:

          【讨论】:

          • 我检查了我仍然得到一个空值。我检查了密钥的拼写和所有内容。
          猜你喜欢
          • 1970-01-01
          • 2013-05-09
          • 2011-08-26
          • 2017-02-17
          • 2012-07-31
          • 1970-01-01
          • 1970-01-01
          • 2013-09-20
          • 2011-11-01
          相关资源
          最近更新 更多