`
jinvasshole
  • 浏览: 767372 次
文章分类
社区版块
存档分类
最新评论

应用程序配置文件中读取自定义配置节

 
阅读更多

有时候,我们需要在应用程序配置文件(app.config)或网站配置文件(web.config)中自定义一些信息,靠appSetting和connectionString不能满足需求。

首先在配置文件中添加configSections节,说明自定义配置节的名称,并制定读取方式(用什么处理程序来读取),这里我演示自定义处理程序读取,自定义处理程序必须实现IConfigurationSectionHandler接口

1.定义实体类Student

Code:
  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Linq;
  4. usingSystem.Text;
  5. namespaceConsoleApplication{
  6. publicenumGender{
  7. Female,
  8. Male
  9. }
  10. publicenumGrade{
  11. G1,
  12. G2,
  13. G3
  14. }
  15. publicclassStudent{
  16. publicstringName{get;set;}
  17. publicintAge{get;set;}
  18. publicGenderGender{get;set;}
  19. publicGradeGrade{get;set;}
  20. publicstringHobby{get;set;}
  21. publicoverridestringToString(){
  22. returnstring.Format("我是{0}{1},今年{2}岁,我喜欢{3}。",
  23. Name,
  24. Gender==Gender.Male?"男生":"女生",
  25. Age,
  26. Hobby);
  27. }
  28. }
  29. }

2.定义自定义处理程序StudentSectionHandler来创建对象

Code:
  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Linq;
  4. usingSystem.Text;
  5. usingSystem.Configuration;
  6. usingSystem.Xml;
  7. namespaceConsoleApplication{
  8. publicclassStudentSectionHandler:IConfigurationSectionHandler{
  9. publicobjectCreate(objectparent,objectconfigContext,XmlNodesection){
  10. List<Student>stuList=newList<Student>();
  11. try{
  12. foreach(XmlNodestuNodeinsection.ChildNodes){
  13. Studentstu=newStudent();
  14. foreach(XmlNodenodeinstuNode.ChildNodes){
  15. switch(node.Name){
  16. case"Name":stu.Name=node.InnerText;break;
  17. case"Age":stu.Age=Convert.ToInt32(node.InnerText);break;
  18. case"Gender":stu.Gender=(Gender)Enum.Parse(typeof(Gender),node.InnerText);break;
  19. case"Grade":stu.Grade=(Grade)Enum.Parse(typeof(Grade),node.InnerText);break;
  20. case"Hobby":stu.Hobby=node.InnerText;break;
  21. }
  22. }
  23. stuList.Add(stu);
  24. }
  25. }catch(Exceptionex){
  26. throwex;
  27. }
  28. returnstuList;
  29. }
  30. }
  31. }

3.配置文件中加入自定义信息

Code:
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <configuration>
  3. <configSections>
  4. <sectionname="Students"type="ConsoleApplication.StudentSectionHandler,ConsoleApplication,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null"/>
  5. </configSections>
  6. <Students>
  7. <Student>
  8. <Name>Sonny.Lin</Name>
  9. <Age>30</Age>
  10. <Gender>Male</Gender>
  11. <Grade>G2</Grade>
  12. <Hobby>旅游</Hobby>
  13. </Student>
  14. <Student>
  15. <Name>Willim.Lin</Name>
  16. <Age>3</Age>
  17. <Gender>Male</Gender>
  18. <Hobby>玩、看电视</Hobby>
  19. </Student>
  20. </Students>
  21. </configuration>

注意:
1.section中定义了Students(xml)节点,而Students中定义了两个Student,所以这个处理程序应该返回List<Student>类型;
2.处理程序的type一定要用强类型,“完整类名,程序集名,版本信息 ,区域信息 ,公钥 ”,根据自己的不同名称需要更改;

4.测试程序入口

Code:
  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Linq;
  4. usingSystem.Text;
  5. usingSystem.Configuration;
  6. namespaceConsoleApplication{
  7. classProgram{
  8. staticvoidMain(string[]args){
  9. List<Student>stuList=ConfigurationManager.GetSection("Students")asList<Student>;
  10. if(stuList!=null){
  11. foreach(StudentstuinstuList){
  12. Console.WriteLine(stu);
  13. }
  14. }
  15. }
  16. }
  17. }

下载地址:http://u.163.com/VmMfE
提取码:jiqul3zh

分享到:
评论

相关推荐

    .NET自定义配置节

    利用ConfigurationSection实现的自定义配置节,可用于读取或写入一系列相关的配置信息到app.config或者web.config文件中.

    详解C#读取Appconfig中自定义的节点

    我们往往需要在App.config中自定义一些节来满足实际需要,而不依赖于App.config的appSettings,下面通过一个简单的实例来说明自定义配置节点的设置与读取

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    5.2 global.asax应用程序文件 5.2.1 应用程序事件 5.2.2 演示应用程序事件 5.3 ASP.NET配置 5.3.1 machine.config文件 5.3.2 web.config文件 5.3.3 设置 5.3.4 5.3.5 5.3.6 5.3.7 通过编程读写...

    flex3的cookbook书籍完整版dpf(包含目录)

    使用Cairngorm框架生成器生成应用程序骨架 21.9节.学习常用的提高性能的技巧 21.10节.在组件中创建元数据 第二十二章.模块(Modules)和运行时共享库(RSLs)(669) 22.1节.创建一个运行时共享库 22.2节.使用跨域的RSL ...

    ASP.NET.4揭秘 卷2

    n93 创建自定义配置节 n94 创建加密的配置节 n941 使用aspnet_regiis工具加密配置节 n942 以编程方式加密配置节 n943 部署加密的Web配置文件 n95 小结n第10章 部署ASPNET Web应用 n101 打包Web应用 n102 使用...

    Shell实现读取ini格式配置文件方法

    ini文件格式一般都是由节、键、值三部分组成 格式: [第一节 ] 第一个键 = 值 第二个键 = 第二个值 [第二节 ] 第一个键 = val1,val2,val3 例子: 代码如下: ...KINGGOO = jb51.net ...# __readINI [配置文件路径+

    ASP.NET4高级程序设计(第4版) 3/3

    5.2 global.asax应用程序文件 140 5.2.1 应用程序事件 141 5.2.2 演示应用程序事件 143 5.3 ASP.NET配置 144 5.3.1 machine.config文件 144 5.3.2 web.config文件 147 5.3.3 设置 150 5.3.4 150 ...

    自定义统计SDKTcStatInterface.zip

    SDK使用配置本节主要介绍使用好房统计SDK前的准备工作,开发者也可以参照SDK中的demo来配置。2.1. 配置AndroidManifest.xml文件 SDK支持的最低安卓版本为2.2。 android:minSdkVersion="8"/&gt;统计服务需要的权限列表 ...

    PCRecord 项目您可以二次开发,增减功能,文件及支持的芯片

    它包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。 &lt;br&gt;PCRecord.h 这是应用程序的主要头文件。它包括其他项目特定的头文件并声明 CPCRecordApp ...

    按钮类的新测试(wm6)

    它包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。 Test.h 这是应用程序的主要头文件。它包括其他项目特定的头文件并声明 CTestApp 应用程序类。 Test.cpp ...

    c#进程守护软件-附源码

    增加间隔时间输入框及保存按钮,间隔时间大于等于500,小于等于1000000000之间的整数(毫秒),没有限制再配置中添加应用程序的个数。 12、开始监控及停止监控互锁显示。 13、默认优先读取配置中的最大的间隔时间,...

    asp.net知识库

    革新:.NET 2.0的自定义配置文件体系初探 关于如何在ASP.NET 2.0中定制Expression Builders 怎么在ASP.NET 2.0中使用Membership asp.net 2.0-实现数据访问(1) ASP.NET 2.0 新特性 .NET 2.0里使用强类型数据创建...

    易语言程序免安装版下载

     静态编译后的易语言可执行程序(exe)和动态链接库(dll),运行时不再依赖任何支持库文件,文件尺寸更小(相对以前的独立编译),PE结构更合理(取消了“易格式体”),加载速度更快,而且有效解决了“病毒误报”和...

    php课程(共100多节)

    php课程(共100多节),让你从小白成神,最主流的PHP技术! 有: 1:环境配置与代码调试 2:PHP的数据类型与源码调试 3:常用PHP运算类型介绍与应用 4: PHP条件语句介绍与应用 5:PHP循环语句的介绍与应用 6:PHP数组...

    ASP.NET 2.0+SQL Server 2005全程指南-源代码

    5.4.3 添加自定义Web.Config文件配置节 5.4.4 对Web.Config文件进行读写操作 5.4.5 加密和解密Web.Config文件的配置节 5.4.6 ASP.NET网站管理工具 5.4.7 ASP.NET MMC管理单元 5.5 本章小结 第6章 数据源控件 ...

    ASP.NET 3.5 开发大全11-15

    14.2.4 XML文件读取类(XmlTextReader) 14.2.5 XML文件编写类(XmlTextWriter) 14.2.6 XML文本文档类(XmlDocument) 14.3 XML串行化 14.3.1 XmlSerializer串行化类 14.3.2 基本串行化 14.4 XML样式表XSL 14.4.1 ...

    ASP.NET 3.5 开发大全

    14.2.4 XML文件读取类(XmlTextReader) 14.2.5 XML文件编写类(XmlTextWriter) 14.2.6 XML文本文档类(XmlDocument) 14.3 XML串行化 14.3.1 XmlSerializer串行化类 14.3.2 基本串行化 14.4 XML样式表XSL 14.4.1 ...

    ASP.NET3.5从入门到精通

    14.2.4 XML 文件读取类(XmlTextReader) 14.2.5 XML 文件编写类(XmlTextWriter) 14.2.6 XML 文本文档类(XmlDocument) 14.3 XML 串行化 14.3.1 XmlSerializer 串行化类 14.3.2 基本串行化 14.4 XML 样式表XSL ...

    ASP.NET 3.5 开发大全1-5

    14.2.4 XML文件读取类(XmlTextReader) 14.2.5 XML文件编写类(XmlTextWriter) 14.2.6 XML文本文档类(XmlDocument) 14.3 XML串行化 14.3.1 XmlSerializer串行化类 14.3.2 基本串行化 14.4 XML样式表XSL 14.4.1 ...

Global site tag (gtag.js) - Google Analytics