Storing values in the web.config - appSettings or configSection - which is more efficient?

后端 未结 3 1700
悲&欢浪女
悲&欢浪女 2021-02-05 21:55

I\'m writing a page that can use a couple of different themes, and I\'m going to store some information about each theme in the web.config.

Is it more efficient to cre

相关标签:
3条回答
  • 2021-02-05 22:36

    For more complex configuration setup, I would use a custom configuration section that clearly defines the roles of each section for example

    <appMonitoring enabled="true" smtpServer="xxx">
      <alertRecipients>
        <add name="me" email="me@me.com"/>
      </alertRecipient>
    </appMonitoring>
    

    In your configuration class you can expose your properties with something like

    public class MonitoringConfig : ConfigurationSection
    {
      [ConfigurationProperty("smtp", IsRequired = true)]
      public string Smtp
      {
        get { return this["smtp"] as string; }
      }
      public static MonitoringConfig GetConfig()
      {
        return ConfigurationManager.GetSection("appMonitoring") as MonitoringConfig
      }
    }
    

    You can then access configuration properties in the following way from your code

    string smtp = MonitoringConfig.GetConfig().Smtp;
    
    0 讨论(0)
  • 2021-02-05 22:41

    There will be no measurable difference in terms of efficiency.

    AppSettings is great if all you need are name/value pairs.

    For anything more complex, it's worth creating a custom configuration section.

    For the example you mention, I'd use appSettings.

    0 讨论(0)
  • 2021-02-05 22:55

    There'll be no difference in performance, since ConfigurationManager.AppSettings just calls GetSection("appSettings") anyway. If you'll need to enumerate all the keys, then a custom section will be nicer than enumerating all of appSettings and looking for some prefix on the keys, but otherwise it's easier to stick to appSettings unless you need something more complex than a NameValueCollection.

    0 讨论(0)
提交回复
热议问题