App.config文件如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="Companies" type="ConvertCV.ConvertCfgHandler,ConvertCV"/>
  </configSections>
  <Companies>
    <Company Enabled="false">
      <ID>563</ID>
      <Name>公司AA</Name>
      <SourceFolder>E:\test\PubResume\aa</SourceFolder>
      <TargetFolder>E:\test\PubResume\aa_cvt</TargetFolder>
    </Company>
    <Company Enabled="false">
      <ID>234</ID>
      <Name>公司BB</Name>
      <SourceFolder>E:\test\PubResume\bb</SourceFolder>
      <TargetFolder>E:\test\PubResume\bb_cvt</TargetFolder>
    </Company>
    <Company Enabled="true">
      <ID>384</ID>
      <Name>公司CC</Name>
      <SourceFolder>E:\test\PubResume\cc</SourceFolder>
      <TargetFolder>E:\test\PubResume\cc_cvt</TargetFolder>
    </Company>
  </Companies>
  <appSettings>
    <!--要处理哪天的数据,如果为空,则处理当天的数据-->
    <add key="PubDate" value="2009-3-22"/>
    <!--基础数据目录-->
    <add key="BaseDataPath" value="E:\Batch\test\bin\Debug\BaseData"/>
  </appSettings>
</configuration>

读取自定义配置文件:

第一步,先创建configuration section类

public class CompanySection
    {
        public CompanySection()
        {
           
        }

public CompanySection(XmlNode company)
        {
            XmlElement c = (XmlElement)company;
            _enabled = Convert.ToBoolean(c.Attributes["Enabled"].Value);
            _id = c.SelectSingleNode("ID").InnerText;
            _name = c.SelectSingleNode("Name").InnerText;

_sourceFolder = c.SelectSingleNode("SourceFolder").InnerText;
            if (_sourceFolder.Substring(_sourceFolder.Length - 1) != @"\")
                _sourceFolder += @"\";

_targetFolder = c.SelectSingleNode("TargetFolder").InnerText;
            if (_targetFolder.Substring(_targetFolder.Length - 1) != @"\")
                _targetFolder += @"\";
        }
       
        #region 属性
        private string _id = "";
        private string _name = "";
        private string _sourceFolder = "";
        private string _targetFolder = "";
        private bool _enabled = true;

public string ID
        {
            get { return _id; }
            set { _id = value; }
        }

public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

public string SourceFolder
        {
            get { return _sourceFolder; }
            set { _sourceFolder = value; }
        }

public string TargetFolder
        {
            get { return _targetFolder; }
            set { _targetFolder = value; }
        }

public bool Enabled
        {
            get { return _enabled; }
            set { _enabled = value; }
        }
        #endregion

}

第二步, 需要继承IConfigurationSectionHandler接口

public class ConvertCfgHandler : IConfigurationSectionHandler
    {
        public ConvertCfgHandler()
        {

}

#region IConfigurationSectionHandler Members

public object Create(object parent, object configContext, XmlNode section)
        {
            List<CompanySection> _list = new List<CompanySection>();

foreach(XmlNode company in section.SelectNodes("//Company"))
            {
                CompanySection _company = new CompanySection(company);
                if(_company.Enabled)
                    _list.Add(_company);
            }

return _list;
        }
        #endregion
    }

第三步,读取配置项

public class CompanyConfig
{
        /// <summary>
        /// 获取配置文件中的公司信息
        /// </summary>
        /// <returns></returns>
        public static List<CompanySection> GetCompanyList()
        {
            return (List<CompanySection>)ConfigurationSettings.GetConfig("Companies");
        }

}

第四步,使用配置内容

static void Main()

{

private List<CompanySection> _companyList =  CompanyConfig.GetCompanyList();

foreach(CompanySection company in _companyList)

{

//处理代码

}

}

转载于:https://www.cnblogs.com/anny-1980/articles/1421554.html

(原)举例说明C#自定义配置文件app.config及如何读取配置内容(在app.config加入自定义的XML节点)?...相关推荐

  1. java通过spring获取配置文件_springboot获取properties文件的配置内容(转载)

    1.使用@Value注解读取 读取properties配置文件时,默认读取的是application.properties. application.properties: demo.name=Nam ...

  2. Springboot 之 自定义配置文件及读取配置文件

    读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单. 核心 ...

  3. springCloud - 第7篇 - 配置文件管理中心 ( SpringCloud Config )

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.简介 分布式的系统往往有多个服务,会有不同的配置文件. 不同环境配置文件内容也各不相同: 开发环 ...

  4. SpringCloud微服务(06):Config组件,实现配置统一管理

    一.Config简介 在微服务系统中,服务较多,相同的配置:如数据库信息.缓存.参数等,会出现在不同的服务上,如果一个配置发生变化,需要修改很多的服务配置.spring cloud提供配置中心,来解决 ...

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

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

  6. lumen 下使用自定义配置文件

    由于lumen与laravel有一定的区别,在lumen根目录下没有config文件,因此在lumen下使用自定义配置文件的时候有区别,如下步骤 1,在根目录下新建config文件夹 2,在confi ...

  7. NET 自定义配置文件 Configuration

    说起.NET的配置文件,.NET的开发人员无人不知,无人不用,如下面的配置节点,基本上每个.NET开发的项目都会出现像下面的配置,出现在App.config或者Web.config中 <conn ...

  8. spring配置文件_SpringBoot入门建站全系列(二十三)配置文件优先级及自定义配置文件...

    SpringBoot入门建站全系列(二十三)配置文件优先级及自定义配置文件 一.概述 Spring Boot允许多种配置来源,官网是这样说的: Spring Boot使用一种非常特殊的Property ...

  9. Springboot-读取核心配置文件及自定义配置文件

    读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单. 核心 ...

最新文章

  1. zend framework mysql_Zend Framework连接Mysql数据库实例分析
  2. css点击a标签显示下划线_好程序员HTML5培训教程-html和css基础知识
  3. Java黑皮书课后题第2章:*2.23(驾驶费用)编写一个程序,提示用户输入驾驶的距离、每加仑多少英里的汽车燃油性能值,以及每加仑的价格,然后显示旅程的费用
  4. 技巧心得:Linux技巧小总结
  5. Jmeter在运行结果中文出现乱码问题
  6. spring----06 更多DI知识
  7. __thread 和 __typeof__关键字
  8. Java线程面试题 Top 50 (转载)
  9. 机器人码垛搬运编程程序_一条指令搞定机器人搬运程序
  10. 网络编程_8(项目附件)
  11. 深度学习语音识别方法概述与分析
  12. 苹果屏幕录制怎么没有声音_苹果6plus没有声音怎么回事
  13. HTML5中weight属性的作用,weight属性
  14. JS 0.1+0.2的理解
  15. 领导者激励团队的最佳方法
  16. 深度学习baseline模型_深度学习模型在序列标注任务中的应用
  17. 【单片机】温度感应报警装置的设计与制作(说明书)
  18. 实例讲解spark在京东智能供应链预测系统的应用
  19. DHCP地址池耗尽攻击
  20. 【STL详解】stack

热门文章

  1. matlab guide实现多级界面
  2. html读取servlet,简单html与servlet交互(HTML利用servlet读取txt)
  3. k3 审核流程图_K3操作流程图
  4. java队列_java集合入门和深入学习(详解),看这篇就差不多了
  5. 一加桌面3.0 android8,一加手机XRemix6.0安卓8.1.0Beta2.0定制本地化增强适配归属农历等...
  6. html万花筒照片代码,怎样拍出万花筒效果
  7. 中raise抛出异常_Python 异常处理知识点汇总,五分钟就能学会 !
  8. java将异常输出到日志_【ThinkingInJava】25、将异常输出记录到日志
  9. java - 菲波拉契数列 兔子个数
  10. 零基础爬虫requests初阶教程,手把手教你爬数据