.net如何自定义config配置文件节点
本文转载: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="Data Source=.\sqlexpress;Initial Catalog=background;Integrated Security=True;MultipleActiveResultSets=True"" 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配置文件节点的更多相关文章
- C# 读取app.config配置文件节点键值,提示"配置系统未能初始化" 错误的解决方案
MSDN里写到, 如果配置文件中包含 configSections 元素,则 configSections 元素必须是 configuration 元素的第一个子元素. 将自己添加的appSettin ...
- App.config和Web.config配置文件的自定义配置节点
前言 昨天修改代码发现了一个问题,由于自己要在WCF服务接口中添加了一个方法,那么在相应调用的地方进行更新服务就可以了,不料意外发生了,竟然无法更新.左查右查终于发现了问题.App.config配置文 ...
- C#自定义配置文件节点
老实说,在以前没写个自定义配置节点之前,我都是写到一个很常用的节点里面,就是appSettings里add,然后再对各个节点的value值进行字符串分割操作,根据各种分割字符嵌套循环处理,后来看到一些 ...
- C# 如何获取自定义的config中节点的值,并修改节点的值
现定义一个方法 DIYConfigHelper.cs using System; using System.Xml; using System.Configuration; using System. ...
- 在.net中读写config文件的各种方法(自定义config节点)
http://www.cnblogs.com/fish-li/archive/2011/12/18/2292037.html 阅读目录 开始 config文件 - 自定义配置节点 config文件 - ...
- Winform中对自定义xml配置文件进行Xml节点的添加与删除
场景 Winform中自定义xml配置文件后对节点进行读取与写入: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10053213 ...
- Winform中自定义xml配置文件后对节点进行读取与写入
场景 Winform中自定义xml配置文件,并配置获取文件路径: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100522648 ...
- springboot读取自定义配置文件节点
今天和大家分享的是自定义配置信息的读取:近期有写博客这样的计划,分别交叉来写springboot方面和springcloud方面的文章,因为springboot预计的篇章很多,这样cloud的文章就需 ...
- Web.config配置文件详解
整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <?xml v ...
随机推荐
- BZOJ 3993 [SDOI 2015] 星际战争 解题报告
首先我们可以二分答案. 假设当前二分出来的答案是 $Ans$ ,那么我们考虑用网络流检验: 设武器为 $X$,第 $i$ 个武器的攻击力为 $B_i$: 设机器人为 $Y$,第 $i$ 个机器人的装甲 ...
- csdn搜索技巧
由于CSDN下载资源高级搜索,只能显示10页分页,所以我们换种方法去搜索csdn的资源. 第10页以后没了. 在百度框里面输入如下: jquery site:download.csdn.net 图:
- USB 枚举过程详解
Windows 对USB设备的枚举过程流程图如图1所示: 图1 WP8的USB功能只支持一个配置,三个接口,也就是分别有如下的字段: 设备描述符的bNumConfigurations=1, 配置描述符 ...
- 【Quick 3.3】资源脚本加密及热更新(二)资源加密
[Quick 3.3]资源脚本加密及热更新(二)资源加密 注:本文基于Quick-cocos2dx-3.3版本编写 一.介绍 在前一篇文章中介绍了代码加密,加密方式是XXTEA.对于资源文件来说,同样 ...
- Ember.js demo8
<!DOCTYPE html> <html> <head> <meta name="description" content=" ...
- PHP奇趣笔试试题一则
$a = 3; $b = 5; if($a = 5 || $b = 7){ $a++; $b++; } echo $a, ' ', $b; 输出结果为: A.6 8 B.6 6 C.2 6 D.1 6 ...
- 学习笔记-[Maven实战]-第一章:Maven简介
Maven简介: Maven 可翻译为:知识的积累,也可以翻译为"专家"或"内行". Maven 是一个跨平台的项目管理工具,是Apache组织中一个很成功的开 ...
- Eclipse全屏及插件下载
Eclipse全屏插件下载 解压下载的压缩包,将 plugins 文件夹中的 cn.pande.eclipsex.fullscreen_1.0.7.jar 文件拷贝到Eclipse安装目录下的 ...
- BZOJ_1011_[HNOI2008]_遥远的行星_(近似)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1011 \(n\)个行星,第\(i\)颗行星的质量为\(m_i\),给出一个很小的常数\(A\) ...
- [NYOJ 536] 开心的mdd
开心的mdd 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述himdd有一天闲着无聊,随手拿了一本书,随手翻到一页,上面描述了一个神奇的问题,貌似是一个和矩阵有关的东西. ...