C#程序的配置文件,使用的最多的是appSettings 下的<add key="Interval" value="30"/>,这种配置单项的很方便,但是配置集合就不方便了(当然你可以用逗号分隔,key=key1,key2,key3……但是你还是不知道有多少个集合).现在给出解决方案.

需求:程序超级管理员采用这种设置方式,在app.config中配置的方式,可以配置多个.登陆成功后,读取config,看我是不是超级管理员.
(当然,这个需求是很扯淡的,因为我是为了举例子,编造的,哇哈哈哈)

1.下载ConfigurationSectionDesigner_2.0.1.7.vsix,安装;
2.重新打开VS,新建测试工程WindowsFormsApplication2;
3.在工程上右键,添加新建项,选在ConfigurateSectionDesiger,命名为ConfigurateSectionDesiger1;
4.双击ConfigurateSectionDesiger1,打开他的设计页面,点击"工具箱";
5.拖一个Configuration Section到页面上,命名为UserSection;
6.点击UserSection的Elements,新增Element,命名为Users
7.工具箱拖一个ConfigurationElementCollection到页面,命名为UserCollection;
8.点击UserSection中的User的属性,选择Type 为: UserCollection,此时UserSection和UserCollection出现箭头连接;
9.工具箱,拖动一个Configuration Element,命名为User.为User增加Attributes,ID,Name,Gender,Pwd,并指定每个attributes的type为string,将ID的Is key 设置为true.
10.设置UserCollection的Item Type为User.
11.查看ConfigurationSectionDesigner1.csd下,有个文件ConfigurationSectionDesigner1.csd.config
12.打开ConfigurationSectionDesigner1.csd.config,将configSections和userSection标签中的内容复制到App.config的configuration节点中.

<configSections>
<section name="userSection" type="WindowsFormsApplication2.UserSection, WindowsFormsApplication2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</configSections>
<userSection xmlns="urn:WindowsFormsApplication2">
<!--
This is just a minimal sample configuration file that shows how to declare
the configuration sections. Because an XML Schema Definition (XSD) is generated for each configuration
section, it should be trivial to edit these files because you have
IntelliSense on the XML definition.
-->
</userSection>

  

13.现在已经配置好了,在app.config中,userSection节点下,敲一下"<",就会出现users的智能提示,在users下敲"<",会出现user的提示,同时user并有iD,Name,Gender,Pwd这些属性
14.读取方法

var section = (UserSection)System.Configuration.ConfigurationManager.GetSection("userSection");
for (int i = 0; i < section.Users.Count; i++)
{
string ID = section.Users[i].ID;
string name = section.Users[i].Name;
string Pwd = section.Users[i].Pwd;
string Gender = section.Users[i].Gender; }

  

注意:app.config中的configSections节点必须放在开始.即是放在configuration节点最开始

PS:这个文章只是利用工具插件,自动生成结构,然后靠在app.config里面配置反射,其实工具那段是可以通过编码来实现的.参看下个文章.

app.config 配置多项 配置集合 自定义配置的更多相关文章

  1. app.config 配置多项 配置集合 自定义配置(2)

    上一篇说了利用app.config自定义节点配置,那是利用工具来实现,其实也一全部编码的方式来实现.举一个栗子.Simpson一家有父亲James,母亲Kate,和三个儿女Jim,Aaron和Luka ...

  2. app.config 配置多项 配置集合 自定义配置(3)

    再说说利用app.config配置多个自定义的方法.先看这个例子:美国家庭Simpson的家里有父亲母亲和三个儿女,而中国的老王只有独生子女.结构如下: <?xml version=" ...

  3. app.config 配置多项 配置集合 自定义配置(4) 自动增加配置项到配置文件的两种方法

    一,按照xml文件处理: 配置文件如下图(最后的图片). 自动写入configSections和configSections的实例 1.自动写入configSections Configuration ...

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

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

  5. C# App.config 自定义 配置节 报错“配置系统未能初始化” 解决方法

    App.config,结果运行的时候出现了 "配置系统未能初始化" 的错误.找了半天才发现是下面的原因造成的: "如果配置文件中包含configSections元素,则c ...

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

    以前还真没见过,今天看项目中有在用,简单写了个Demo,这样配置的好处就是可以自定义配置,更加模块化,直接上代码; 1.配置文件 由于我创建的是一个控制台项目,所以配置文件是App.Config:(这 ...

  7. 【flask】flask项目配置 app.config

    [理论] 在很多情况下,你需要设置程序的某些行为,这时你就需要使用配置变量.在Flask中,配置变量就是一些大写形式的Python变量, 你也可以称之为配置参数或配置键.使用统一的配置变量可以避免在程 ...

  8. .Net Core 自定义配置源从配置中心读取配置

    配置,几乎所有的应用程序都离不开它..Net Framework时代我们使用App.config.Web.config,到了.Net Core的时代我们使用appsettings.json,这些我们再 ...

  9. C# App.config 详解

      读语句: String str = ConfigurationManager.AppSettings["DemoKey"]; 写语句: Configuration cfa = ...

随机推荐

  1. Android01-布局篇

    在Android中,共有五种布局方式,分别是:LinearLayout(线性布局),FrameLayout(帧布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局) ...

  2. PHP Server Nginx 安装

    1. PHP 安装: http://jingyan.baidu.com/article/b2c186c8f16d05c46ef6ff3c.html PHP 问题: http://www.cnblogs ...

  3. 干了这杯Java之Vector

    Vector实现了AbstractList抽象类和List接口,和ArrayList一样是基于Array存储的 Vector 是线程安全的,在大多数方法上存在synchronized关键字 //Vec ...

  4. vs2012中使用localdb实例还原一个sql server 2008r2版本的数据库

    use localdb sometime is easy than sql server ,and always use visual studio make you stupid. vs2012中还 ...

  5. UVa225,Golygons

    刘儒家翻译的走出的图形可以自交,不知道大家是怎么理解的,反正我是认为这句话的意思是告诉我允许一个点访问多次 这样是WA的,n=15和n=16时多输出很多数据,应该是不允许自交,也就是不允许一个点访问多 ...

  6. hibernate5使用注解遇到的问题

    问题描述 出现MappingException:Unknown entity,看到这个我以为在cfg配置文件中没有配置,实际上我是配置了的,那么问题出在那里呢,既然找不到实体,那么会不会是注解类出现了 ...

  7. MySQL技术内幕汇总

    MySql技术内幕之MySQL入门(1) MySql技术内幕之MySQL入门(1) 检查系统中是否已经安装了MySQL sudo netstat -tap | grep mysql 若没有显示已安装结 ...

  8. Windows系统下Nginx的安装与配置

    Nginx是lgor Sysoev在2004年的时候为俄罗斯访问量第二大的rambler.ru站点设计开发的,发布至今,凭借开源的力量,已经接近成熟与完善.其功能丰富,可作为HTTP服务器,也可作为反 ...

  9. [hihoCoder]矩形判断

    #1040 : 矩形判断 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 给出平面上4条线段,判断这4条线段是否恰好围成一个面积大于0的矩形. 输入 输入第一行是一个整数T ...

  10. opencv之从视频帧中截取图片

    最近在训练一个人脸识别的模型,而项目训练需要大量真实人脸图片样本. 刚好项目用到opencv识别人脸,可以把每一帧图片保存下来,用此方法可以方便的获取大量的脸部样本,大约20分钟可以获取到10000张 ...