web.config or app.config 中configSections配置节点

以前还真没见过,今天看项目中有在用,简单写了个Demo,这样配置的好处就是可以自定义配置,更加模块化,直接上代码;

1.配置文件

由于我创建的是一个控制台项目,所以配置文件是App.Config:(这里面遇到的一个坑是,自定义配置一定要放在<startup>配置节点之前,否则无法正常运行。)

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

  <!--自定义配置节点-->
  <configSections>
    <sectionGroup name="ymconfig">
      <section name="ym1" type="System.Configuration.NameValueSectionHandler"/>
      <section name="ym2" type="System.Configuration.NameValueSectionHandler"/>
    </sectionGroup>

    <section name="ryjconfig" type="System.Configuration.NameValueSectionHandler" />
  </configSections>

  <ryjconfig>
    <add key="name1" value="value1"/>
    <add key="name2" value="value2"/>
  </ryjconfig>
  <ymconfig>
    <ym1>
      <add key="yiming1" value="一明1"/>
      <add key="yiming2" value="一明2"/>
    </ym1>
    <ym2>
      <add key="yiming3" value="一明3"/>     
    </ym2>
  </ymconfig>
<!--自定义配置节点结束-->

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>




</configuration>

2.获取配置文件值

using System;
using System.Collections.Specialized;
using System.Configuration;

namespace 学习测试
{
    class Program
    {
        static NameValueCollection ryjConfig = ConfigurationManager.GetSection("ryjconfig") as NameValueCollection;

        static NameValueCollection ymConfig = ConfigurationManager.GetSection("ymconfig/ym1") as NameValueCollection;
        static void Main(string[] args)
        {
            string name1 = ryjConfig["name1"];
            string name2 = ryjConfig["name2"];

            string ryj1 = ymConfig["yiming1"];
            string ryj2 = ymConfig["yiming2"];

            Console.WriteLine(name1 + ":" + name2);
            Console.WriteLine(ryj1+":"+ryj2);
            Console.WriteLine("zj....");
            Console.ReadKey();
        }

       
    }
}

 

posted @ 2018-05-14 16:58  shuai7boy  阅读(756)  评论(1编辑  收藏  举报