当前位置:  开发笔记 > 后端 > 正文

在web.config中存储值 - appSettings或configSection - 哪个更有效?

如何解决《在web.config中存储值-appSettings或configSection-哪个更有效?》经验,为你挑选了3个好方法。

我正在编写一个可以使用几个不同主题的页面,我将在web.config中存储有关每个主题的一些信息.

是否更有效地创建一个新的sectionGroup并将所有内容存储在一起,或者只是将所有内容放在appSettings中?

configSection解决方案


    
        

要访问configSection中的值,我使用以下代码:

    NameValueCollection themes = ConfigurationManager.GetSection("SchedulerPage/Themes") as NameValueCollection;
    String SchedulerTheme = themes["UB"];

appSettings解决方案


    
    

要在appSettings中访问值,我正在使用此代码

    String SchedulerTheme = ConfigurationManager.AppSettings["UBSchedulerForm"].ToString();

Nick Allen.. 11

对于更复杂的配置设置,我会使用一个自定义配置部分,明确定义每个部分的角色


  
    
  

在您的配置类中,您可以使用类似的方式公开属性

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

然后,您可以从代码中以下列方式访问配置属性

string smtp = MonitoringConfig.GetConfig().Smtp;


Joe.. 10

在效率方面没有可衡量的差异.

如果您只需要名称/值对,AppSettings就很棒.

对于任何更复杂的东西,值得创建自定义配置部分.

对于您提到的示例,我将使用appSettings.



1> Nick Allen..:

对于更复杂的配置设置,我会使用一个自定义配置部分,明确定义每个部分的角色


  
    
  

在您的配置类中,您可以使用类似的方式公开属性

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

然后,您可以从代码中以下列方式访问配置属性

string smtp = MonitoringConfig.GetConfig().Smtp;



2> Joe..:

在效率方面没有可衡量的差异.

如果您只需要名称/值对,AppSettings就很棒.

对于任何更复杂的东西,值得创建自定义配置部分.

对于您提到的示例,我将使用appSettings.



3> stevemegson..:

性能没有区别,因为ConfigurationManager.AppSettings无论如何只调用GetSection("appSettings").如果您需要枚举所有键,那么自定义部分将比枚举所有appSettings并在键上寻找一些前缀更好,但除非您需要比NameValueCollection更复杂的东西,否则更容易坚持使用appSettings.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有