在.Net平台下的配置文件主要使用在Web开发和桌面开发中,对应的配置文件类型也不一样,Web中为Web.config文件,但是在桌面应用中为App.config文件。

当然使用上也稍微有些区别,下文将会阐述。

配置文件结构大致如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration><!--自定义配置节点--><configSections><sectionGroup name="OwnSectionA"><section name="AAA" type="AppLibrary.Configuration.MySelfInfoHandle,AppLibrary,Version=1.0.0.0"/><section name="BBB" type="System.Configuration.SingleTagSectionHandler"/></sectionGroup><sectionGroup name="OwnSectionB"><section name="aaa" type="System.Configuration.SingleTagSectionHandler"/><section name="bbb" type="System.Configuration.SingleTagSectionHandler"/></sectionGroup></configSections><!--自定义节点内容区域--><OwnSectionA><AAA><add key="name" value="huchen's homepage"/><add key="version" value="1.0"/></AAA></OwnSectionA><!--读取修改配置节点--><appSettings><clear/><add key ="Access" value="/Date/mvp.accdb"/><add key="Sql" value="null"/></appSettings></configuration>

对于配置文件的使用主要分两种类型:

使用之前请确保项目已经引用了System.configuration程序集。

(一):系统预定义的配置节点(大家所熟悉的appSettings节点以及Web.config中connectionStrings节点)

对于connectionStrings配置节点的使用简单介绍,因为大家太熟悉了,主要使用方法看如下代码:

 <connectionStrings><add name="SQLConn" connectionString="data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=nORTHWIND"providerName="System.Data.SqlClient" /><add name="SQLConnB" connectionString="server=.\SQLEXPRESS;database=Northwind;uid=sa;pwd=de"providerName="System.Data.SqlClient"/></connectionStrings>

System.Configuration.ConfigurationManager.ConnectionStrings["SQLConn"].ToString()               或者System.Web.Configuration.WebConfigurationManager.ConnectionStrings["SQLConn"].ToString() 即可获取配置文件中的值

对于appSettings配置节点的使用读取与connectionStrings节点类似,只不过使用WebConfigurationManager.AppSettings和ConfigurationManager.AppSettings。

下面主要说一下appSettings节点的增加,修改和删除,当然进行修改操作要确保用户具有修改权限。直接看代码:

Web中使用:

           System.Configuration.Configuration configuration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
           System.Configuration.AppSettingsSection app = configuration.AppSettings;

app.Settings.Add(key, value); //增加

app.Settings[key].Value=value; //修改

app.Settings.Remove(key);  //删除

configuration.Save(System.Configuration.ConfigurationSaveMode.Modified);

WinForm中使用:

           Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

AppSettingsSection app = config.AppSettings;

app.Settings.Add(key, value); //增加
           app.Settings[key].Value=value; //修改

app.Settings.Remove(key);  //删除

config.Save(ConfigurationSaveMode.Modified);

实时读取小技巧:

ConfigurationManager.AppSettings 返回的是System.Collections.Specialized.NameValueCollection 表示可以通过索引访问的关联 String 键和 String 值的集合。

关于Winform下实时读取技巧代码段(通过在读取并展现出来就不需要重新加载了,刚修改过的节点会立刻呈现出来):

            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            List<string> dir = new System.Collections.Generic.List<string>();
            AppSettingsSection app = config.AppSettings;
           
            string[] str = app.Settings.AllKeys;

for (int i = 0; i < str.Length; i++)
            {
                dir.Add(str[i] + "||" + app.Settings[str[i]].Value);
            }

this.listBox1.DataSource =dir;

(二):用户自定义的配置节点(如果有用户自定义的配置节点,则必须是configuration节点下的第一个节点)

关于用户自定义的配置节点的使用(待续)

转载于:https://www.cnblogs.com/de0319gh/archive/2010/06/25/1765288.html

DotNet中配置文件的使用(一)相关推荐

  1. dotNet中,取得指定日期所在月份的最后一天

    问题: dotNet中,如何方便快速的取得指定日期所在月份的最后一天? 思路: 从指定日期所在月份下个月的1号的前一天,就是所求的内容. 实现: int GetLastDayOfMonth(DateT ...

  2. ThinkPHP公共配置文件与各自项目中配置文件组合的方法

    ThinkPHP公共配置文件与各自项目中配置文件组合的方法 文章TAG:thinkphp 公共配置文件 时间:2014-11-25来源:www.aspku.com 作者:源码库 文章热度: 146 ℃ ...

  3. Dotnet中Span, Memory和ReadOnlySequence之浅见

    过年啦,写个短点的.同时,提前给大家拜个年.   总有小伙伴们跑过来讨论关于Span和Memory的使用,眼瞅是最近关于Span的文章有点多,看飞了. 今天写这个,就是往回拉一拉. 写之前,先声明一下 ...

  4. dotNet中初始化器的使用

    dotNet中初始化器的使用 2013年12月7日 13:27 有两类初始化器: 对象初始化器和集合初始化器 比如现在有一个User类: Public   class User { public in ...

  5. 在虚拟机中ftp服务器的配置,ftp服务器在虚拟机中配置文件

    ftp服务器在虚拟机中配置文件 内容精选 换一换 由于主机中 /etc/ssh/sshd_config 配置文件中对服务器与客户端交互的活动心跳时间做出了限制,所以在一个ansible任务中如果在&q ...

  6. Dotnet中Socket网络通信

    本文介绍Socket的基本知识. TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在"无差别"的网络之上. 建立起一个TCP连接需要经过"三次握手"  ...

  7. phpstorm设置 打开文件所在目录_在根目录中配置文件夹

    # 在根目录中配置文件夹 在这个页面中: * [概述](#概述) * [标记目录](#标记目录) * [取消标记目录](#取消标记目录) ## 概述 在一个[根目录](/参考/要点/根目录.md)中, ...

  8. docker容器中配置文件修改错误,导致容器无法启动

    docker容器中配置文件修改错误,导致容器无法启动 问题 在elasticsearch加入中文分词器ik时,在容器中配置修改错误,导致elasticsearch启动不了 解决方案 [root@blu ...

  9. 嵌入式Qt开发中配置文件的尝试——TOML

    嵌入式Qt开发中配置文件的尝试--TOML 1 起因 2 关于 QSetting 3 重新寻找方案 TOML 3.1 TOML 初体验 4 后话 1 起因 在大多数项目中,系统启动时都需要读取一份配置 ...

最新文章

  1. [python] 从GPS坐标获取国家名
  2. 100 行代码透彻解析 RPC 原理
  3. run cuda samples ubuntu_NVIDIA cuDNN v8 deb方法安装教程(Linux/Ubuntu)
  4. 屏幕边框闪光_写给想入手21:9的屏幕党,明基 EX3501R 真香跳坑指南
  5. 2018.07.17 洛谷P1368 工艺(最小表示法)
  6. python读取中文文件乱码-详解Python的json文件读取及中文乱码显示问题解决方法...
  7. mysql 给列增加索引
  8. 计算机acm国际排名,acm(中国大学acm综合排名)
  9. Common sense-墨菲定律
  10. TabLayout 的使用 更改下划线的长度,和一个奇葩的问题
  11. CSS兼容性技巧整理从IE6-IE9 火狐谷歌浏览器兼容
  12. Android7.08.0 电池图标分析
  13. python输入百分制成绩输出成绩等级_switch实现成绩打等级
  14. Unnecessary escape character: \- no-useless-escape eslint
  15. Java 集合转数组的toArray()和toArray(T[] a)方法通俗易懂
  16. 修改数据库表的某一字段长度
  17. ViewPager控件之PagerAdapter适配器
  18. python flask 微信小程序_python-flask微信小程序搭建
  19. 迄今为止最好的 Windows,更新四月版 17134 系统
  20. 怎么调用vmware api和接口

热门文章

  1. 离线实时与api对应的关系+未来流行度
  2. jdbc对mysql进行增删改查操作(Statement)
  3. Ubuntu 16.04 LTS apt-get connect refuse Unable to connect to 127.0.0.1:1080
  4. 决策树(CART算法)针对中文文本分类
  5. 合并excel文件 C语言,再见Ctrl + C!合并100个Excel表格,只需30秒!
  6. 数学狂想曲(十二)——熵(2), 阴影面积, 肺炎版《黄冈密卷》
  7. php java session共享_PHP实现session共享
  8. 代码雨代码源复制_小程序基于Parser添加长按复制、代码高亮等功能
  9. IP协议详解---Linux学习笔记
  10. 设计一种面向对象脚本语言