本文转载:http://www.cnblogs.com/lori/archive/2013/04/03/2997617.html

对于小型项目来说,配置信息可以通过appSettings进行配置,而如果配置信息太多,appSettings显得有些乱,而且在开发人员调用时,也不够友好,节点名称很容易写错,这时,我们有几种解决方案

1 自己开发一个配置信息持久化类,用来管理配置信息,并提供面向对象的支持
2 使用.net自带的configSections,将配置信息分块管理,并提供实体类,便于开发人员友好的去使用它

本文主要说说第二种方案,它由实体类,实体类工厂及配置文件三个部分,看代码:

实体类设计:

namespace Configer
{
/// <summary>
/// 网站信息配置节点
/// </summary>
public class WebConfigSection : ConfigurationSection
{
/// <summary>
/// 网站名称
/// </summary>
[ConfigurationProperty("WebName", DefaultValue = "", IsRequired = true, IsKey = false)]
public string WebName
{ get { return (string)this["WebName"]; }
set { this["WebName"] = value; }
}
/// <summary>
/// 网站域名
/// </summary>
[ConfigurationProperty("DoMain", DefaultValue = "", IsRequired = true, IsKey = false)]
public string DoMain
{ get { return (string)this["DoMain"]; }
set { this["DoMain"] = value; }
} }
}

实体工厂类设计,主要用来生产实体配置信息

namespace Configer
{
/// <summary>
/// 网站配置信息工厂
/// </summary>
public class WebConfigManager
{
/// <summary>
/// 配置信息实体
/// </summary>
public static readonly WebConfigSection Instance = GetSection(); private static WebConfigSection GetSection()
{
WebConfigSection config = ConfigurationManager.GetSection("WebConfigSection") as WebConfigSection;
if (config == null)
throw new ConfigurationErrorsException();
return config;
}
}
}

而最后就是.config文件了,它有configSections和指定的sections块组成,需要注意的是configSections必须位于configuration的第一个位置

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="WebConfigSection" type="Configer.WebConfigSection, test"/>
</configSections>
<connectionStrings>
<add name="backgroundEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\sqlexpress;Initial Catalog=background;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
</connectionStrings> <WebConfigSection WebName="占占网站" DoMain="www.zhanzhan.com" />
<appSettings>
<add key="site" value="www.zzl.com"/> </appSettings>
</configuration>

以上三步实现后,我们就可以调用了,呵呵

  static void Main(string[] args)
{
Console.WriteLine(System.Configuration.ConfigurationManager.AppSettings["site"]);
Console.WriteLine(WebConfigManager.Instance.DoMain);
Console.WriteLine(WebConfigManager.Instance.WebName);
}

结果如下:

aaarticlea/png;base64,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" alt="" />

.net如何自定义config配置文件节点的更多相关文章

  1. C# 读取app.config配置文件节点键值,提示"配置系统未能初始化" 错误的解决方案

    MSDN里写到, 如果配置文件中包含 configSections 元素,则 configSections 元素必须是 configuration 元素的第一个子元素. 将自己添加的appSettin ...

  2. App.config和Web.config配置文件的自定义配置节点

    前言 昨天修改代码发现了一个问题,由于自己要在WCF服务接口中添加了一个方法,那么在相应调用的地方进行更新服务就可以了,不料意外发生了,竟然无法更新.左查右查终于发现了问题.App.config配置文 ...

  3. C#自定义配置文件节点

    老实说,在以前没写个自定义配置节点之前,我都是写到一个很常用的节点里面,就是appSettings里add,然后再对各个节点的value值进行字符串分割操作,根据各种分割字符嵌套循环处理,后来看到一些 ...

  4. C# 如何获取自定义的config中节点的值,并修改节点的值

    现定义一个方法 DIYConfigHelper.cs using System; using System.Xml; using System.Configuration; using System. ...

  5. 在.net中读写config文件的各种方法(自定义config节点)

    http://www.cnblogs.com/fish-li/archive/2011/12/18/2292037.html 阅读目录 开始 config文件 - 自定义配置节点 config文件 - ...

  6. Winform中对自定义xml配置文件进行Xml节点的添加与删除

    场景 Winform中自定义xml配置文件后对节点进行读取与写入: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10053213 ...

  7. Winform中自定义xml配置文件后对节点进行读取与写入

    场景 Winform中自定义xml配置文件,并配置获取文件路径: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100522648 ...

  8. springboot读取自定义配置文件节点

    今天和大家分享的是自定义配置信息的读取:近期有写博客这样的计划,分别交叉来写springboot方面和springcloud方面的文章,因为springboot预计的篇章很多,这样cloud的文章就需 ...

  9. Web.config配置文件详解

    整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <?xml v ...

随机推荐

  1. [XJOI NOI2015模拟题13] A 神奇的矩阵 【分块】

    题目链接:XJOI NOI2015-13 A 题目分析 首先,题目定义的这种矩阵有一个神奇的性质,第 4 行与第 2 行相同,于是第 5 行也就与第 3 行相同,后面的也是一样. 因此矩阵可以看做只有 ...

  2. How to Cracked Sublime Text 3 Build 3065 in Ubuntu (Linux)

    整理自How to Cracked Sublime Text 3 Build 3065 in Ubuntu (Linux) Sublime Text 3 Build 3065 Release Date ...

  3. WAF 与 RASP 的安装使用大比拼!

    什么是WAF和RASP? WAF全称是Web application firewall,即 Web 应用防火墙.RASP 全称是 Runtime Application Self-protect,即应 ...

  4. POJ 1151 Atlantis(离散化)

    点我看题目 题意 : 就是给你n个矩形的最左下角和最右上角的点的坐标,然后将这n个矩形的面积求出来. 思路 : 离散化求矩形面积并.离散化具体介绍.将横纵坐标离散开来分别存,然后排序,也可以按照黑书上 ...

  5. CHANGE DEFAULT FTP PORT FOR VSFTP

    http://twincreations.co.uk/change-default-ftp-port-for-vsftp/ http://www.cnblogs.com/kuliuheng/p/320 ...

  6. icon在线编辑和查找工具

    1.www.iconpng.com 2.在线编辑http://www.ico.la/ 3.小图标查找 http://icomoon.io/app/ 4.20个免费的psd http://www.osc ...

  7. 如何设置EditPlus的默认编码utf-8方式

    最近在使用英文版的Editplus写代码的时候,发现中文字符在调试过程中都变成了乱码,发现是Editplus编码设置的问题,Editplus默认编码可能是ANSI,需要将其改成UTF-8.干脆给设置默 ...

  8. scrollView的几个属性contentSize contentOffset contentInset

    01-  ontentSize是scrollview可以滚动的区域 比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960), 代表你的scrollvie ...

  9. jquery checkbox获取多个选项

    http://www.jb51.net/article/27186.htm http://www.cnblogs.com/libingql/archive/2011/11/07/2238663.htm ...

  10. MySQL主从复制中断处理一例

    收到mysql主从中断报警邮件,马上登上服务器查看,发现是中继日志损坏. Show slave status\G,提示中继日志损坏,按以往的做法,根据提示重新指定合适的日志文件以及pos点.  Rel ...