直接用配置文件app.Config或web.Config配置应用系统的运行参数,比自己做一个xml配置文件,简洁方便得多。这两个配置文件不仅有常见的connectionStrings和appSettings,给出了数据库连接或常见的名/值表的定义访问方法,而且提供了自定义段configSections,可以自行定义段元素,扩展了appSettings一个段的功能。下面是一个具体的应用实例。

1、配置文件(web.Config或app.Config)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<configSections> <!-- 该元素必须在 appSettings 之前-->
      <sectionGroup name="Units">
          <section name="国防部" type="System.Configuration.NameValueSectionHandler"/>
          <section name="公安部" type="System.Configuration.NameValueSectionHandler"/>
      </sectionGroup>
  </configSections>

<Units>
      <国防部>
          <add key="部长名" value="国防部部长"/>
          <add key="副部长" value="国防部次长"/>
    </国防部>

<公安部>
        <add key="部长名" value="公安部部长"/>
        <add key="副部长" value="公安部次长"/>
    </公安部>
  </Units>

<appSettings>
      <add key="A1" value="A1Value"/>
      <add key="A2" value="A2Value"/>
  </appSettings>

</configuration>

需要指出:

  1. 在configSections中,必须先定义自定义段元素组的组名,即“Units”,然后再定义Units的两个段“国防部”和“公安部”。显然,可以定义段组Units的任意多个段。
  2. 在配置文件中,configSections元素必须在appSettings元素之前,否则将报访问错误。

2、访问自定义配置节点

NameValueCollection sections = (NameValueCollection)ConfigurationManager.GetSection("Units/国防部");
      if (sections != null)
      {
           for(int k = 0; k < sections.Keys.Count; k++)
           {
               listBox1.Items.Add(sections.Keys[k] + "  " + sections[k]);
           }
      }

listBox1.Items.Add(ConfigurationManager.AppSettings["A1"]);
      listBox1.Items.Add(ConfigurationManager.AppSettings["A2"]);

在代码中,可以直接使用sections["部长名"]、sections["副部长"]的形式获取key的value值,也可以GetSection("Units/公安部")获取"公安部"段的key和value值。

需要指出,在VS 2005的项目中

  • 必须添加引用程序集 System.configuration;
  • 在名称空间添加 using System.Configuration。

本文配置文件和程序代码在VC# 2005和.NET 2.0环境下的窗体项目中编译通过。可以看出,访问自定义段和appSettings段的访问的几乎没有差别,仍然是简洁与直接的

---------------------

本文来自 三毛三. 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/hulihui/article/details/6062555?utm_source=copy

一个web.Config或app.Config自定义段configSections的示例--转的更多相关文章

  1. 一个web.Config或app.Config自定义段configSections的示例

    一个web.Config或app.Config自定义段configSections的示例 越来越觉得,直接用配置文件app.Config或web.Config配置应用系统的运行参数,比自己做一个xml ...

  2. 在Web.config或App.config中的添加自定义配置

    .Net中的System.Configuration命名空间为我们在web.config或者app.config中自定义配置提供了完美的支持.最近看到一些项目中还在自定义xml文件做程序的配置,所以忍 ...

  3. 在Web.config或App.config中的添加自定义配置 <转>

        .Net中的System.Configuration命名空间为我们在web.config或者app.config中自定义配置提供了完美的支持.最近看到一些项目中还在自定义xml文件做程序的配置 ...

  4. 说说Web.Config与App.Config

    说到web.config和app.config大家都很熟悉,我们都叫他们配置文件,平时用的多,注意的少.两个有啥区别呢,很简单,一句话:如果是web程序,如webform项目类型和mvc项目类型就是w ...

  5. .NET下对Web.config与App.Config的增删改操作的代码

    把代码过程常用的内容做个收藏,下边代码段是关于 .NET下对Web.config与App.Config的增删改操作的代码. <?xml version="1.0" encod ...

  6. .net分布在指定文件夹的web.confgi或者app.config

    .Net里面,ConfigurationManager默认读取的是Web.config或者App.config但是,什么都放在这两个文件里面,感觉太多了,也不好管理配置.于是参考了下别人的资料,自己写 ...

  7. 修改和获取web.config或app.config文件appSettings配置节中的Add里的value属性 函数

    1: /// <summary> 2: /// 修改web.config或app.config文件appSettings配置节中的Add里的value属性 3: /// </summ ...

  8. 《RESTful Web APIs》书中有一段POST API示例,现实中我们如何测试这个示例?书中没有说,Let's try it!

    <RESTful Web APIs>书中有一段POST API示例: I then send the filled-out template as part of an HTTP POST ...

  9. 配置文件(Machine.config、Web.config、App.config)

    Machine.config1.该文件在Windows目录下\Microsoft.net\framework\[version]\Config\2.为了提高性能,该文件只包含不同于默认值的设置.并且定 ...

随机推荐

  1. jsp学习(3)

    1.model模式 2.model1.x分层模式 3.mvc模式(model2) model2的具体体现就是mvc. dao:就是data access object数据访问对象,即专门对数据库进行操 ...

  2. webpack 教程资源目录

    初级教程 webpack-howto 作者:Pete HuntWebpack 入门指迷 作者:题叶 webpack-demos 作者:ruanyf一小时包教会 —— webpack 入门指南 作者:V ...

  3. thinkphp微信开发(消息加密解密)

    使用thinkphp官方的WeChat包,使用不同模式可以成功,但是安全模式就是不行,现将分析解决结果做下记录. 分析问题: 解密微信服务器消息老是不成功,下载下微信公众平台官方给出的解密文件和Wec ...

  4. Shiro身份认证---转

    目录 1. Shro的概念 2. Shiro的简单身份认证实现 3. Shiro与spring对身份认证的实现 前言: Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境 ...

  5. Spring Boot -- actuator

    Spring Boot有四大神器,分别是auto-configuration.starters.cli.actuator,本文主要讲actuator.actuator是spring boot提供的对应 ...

  6. Oracle学习笔记_01_SQL初步

    1.分类 SQL语句分为以下三种类型: DML: Data Manipulation Language        数据操纵语言       DDL: Data Definition Languag ...

  7. BEC listen and translation exercise 49

    Astronaut Sounds Alarm on Asteroids If a big asteroid with Earth's name on it were to reach us unimp ...

  8. inux命令学习笔记(5):rm 命令

    学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令. rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目 录及其下的所 ...

  9. 每天一个linux命令(10):touch命令

    版权声明更新:2017-05-14博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的mv命令. 2. ...

  10. 比线程更NB的存在

    阅读目录 一 引子 二 协程介绍 三 Greenlet模块 四 Gevent模块 引子 之前我们学习了线程.进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位.按道理来 ...