C#对config配置文件的管理

应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是App.Config(ExeName.exe.config)。 

配置文件,对于程序本身来说,就是基础和依据,其本质是一个xml文件,对于配置文件的操作,从.NET 2.0 开始,就非常方便了,提供了 System [.Web] .Configuration 这个管理功能的NameSpace,要使用它,需要添加对System.configuration.dll的引用。 

对于WINFORM程序,使用 System.Configuration.ConfigurationManager;

对于ASP.NET 程序, 使用 System.Web.Configuration.WebConfigurationManager;

对于配置文件内容的读取,真是太普遍不过了,如果你的程序里,没有读取配置文件内容的方面,你都不好意思拿出来用。

 

我们以最常见的 AppSettings 小节来作为例子:

假设有如下的配置文件内容:

<?xml version="1.0" encoding="utf-8" ?>
<configuration><appSettings><add key="y" value="this is Y"/></appSettings>
</configuration>

1. 读取值:

Asp.Net:   System.Web.Configuration.WebConfigurationManager.AppSettings[“y”];
WinForm:  System.Configuration.ConfigurationManager.AppSettings[“y”];

2. 添加一项

ASP.NET(需要有写权限):
Configuration config = WebConfigurationManager.OpenWebConfiguration(null);
AppSettingsSection app = config.AppSettings;
app.Settings.Add("x", "this is X");
config.Save(ConfigurationSaveMode.Modified);WinForm:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);//需要打开的配置文件路径
AppSettingsSection app = config.AppSettings;
app.Settings.Add("x", "this is X");
config.Save(ConfigurationSaveMode.Modified);//保存

3. 修改一项

Asp.Net
Configuration config = WebConfigurationManager.OpenWebConfiguration(null);
AppSettingsSection app = config.AppSettings;
//app.Settings.Add("x", "this is X");
app.Settings["x"].Value = "this is not Y";
config.Save(ConfigurationSaveMode.Modified);WinForm
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
AppSettingsSection app = config.AppSettings;
//app.Settings.Add("x", "this is X");
app.Settings["x"].Value = "this is not Y";
config.Save(ConfigurationSaveMode.Modified);

4. 删除一项

Asp.Net
Configuration config = WebConfigurationManager.OpenWebConfiguration(null);
AppSettingsSection app = config.AppSettings;
app.Settings.Remove("x");
config.Save(ConfigurationSaveMode.Modified);WinForm
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
AppSettingsSection app = config.AppSettings;
app.Settings.Remove("x");
config.Save(ConfigurationSaveMode.Modified);

 

说明:需要注意的是,代码所修改的并不是app.config,而是[Application_Name].exe.config这个文件。其中Application_Name就是你的可执行文件的文件名,而[Application_Name].exe.config才是真正起作用的配置文件。至于app.config,把它理解为是初始化配置文件比较合适。对于winfom在vs调试下app.config无变化是正常的,bin里面生成的程序,运行可看到效果

转载于:https://www.cnblogs.com/duanjt/p/5215872.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

16位的数字高字节和低字节_显示掩盖较低和较高的16位数字半字节| 8086微处理器...

16位的数字高字节和低字节Problem: To show masking of lower and higher nibbles of 16bit number using 8086 Microprocessor. 问题&#xff1a;使用8086微处理器显示对16位数字的较高半字节和较低半字节的屏蔽。 Assumption: 假设&#xff1a; Number is stored at memory…

一个事物两个方面的对比举例_顶管施工也有讲究,两个方面一个个来

顶管施工其实就是我们平时说的不开挖或者非开挖施工啦&#xff0c;其原理是借助于主顶油缸及管道间、中继间等推力&#xff0c;把工具管或掘进机从工作坑内穿过土层一直推进到接收坑内吊起。管道紧随工具管或掘进机后&#xff0c;埋设在两坑之间。为了响应中央的号召&#xff1…

SQLServer中的死锁的介绍

简介 什么是死锁&#xff1f; 我认为&#xff0c;死锁是由于两个对象在拥有一份资源的情况下申请另一份资源&#xff0c;而另一份资源恰好又是这两对象正持有的&#xff0c;导致两对象无法完成操作&#xff0c;且所持资源无法释放。 什么又是阻塞&#xff1f; 阻塞是由于资源不…

c语言位运算符的使用_C语言程序使用位运算符检查给定数字是否为回文

c语言位运算符的使用Problem statement: Write a C program to check whether a number (binary representation) is palindrome or not using bitwise operators. Maximum input is 255.. 问题陈述&#xff1a;编写一个C程序以使用按位运算符检查数字(二进制​​表示形式)是否…

解析取值_圆锥曲线——高中解析几何全归纳

这是一系列文章&#xff0c;我将在接下来了80多天&#xff0c;尽力把理科比较难的大题题型全部归纳一下然后在最后我会告诉做解析几何的窍门&#xff0c;让你的解析几何不再没有头绪&#xff0c;拿到既可做全文干货&#xff0c;不掺水&#xff0c;可以说总结了解析几何中你能遇…

Tomcat版本与Servlet、JSP等版本的支持关系

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/garyxiong/blog/624619

php 随机两位小数数_使用8086微处理器找出两个8位N数数组

php 随机两位小数数Problem statement: 问题陈述&#xff1a; Write a program in 8086 microprocessor to find out the sum of two arrays of 8-bit n numbers, where size “n” is stored at offset 500 and the numbers of first array are stored from offset 501 and t…

人类一败涂地做图教程_绘画步骤_人类一败涂地鼠绘人物步骤与技巧_3DM单机

第一波根据自己喜欢的人物角色选好模型&#xff0c;模型选不好画出来就不像第二步 对模型进行上色 在上色时可选择对某一部位涂色第三步绘制人物服装细节&#xff0c;首先是起个大概的形状 &#xff0c;ALT镜头拉进&#xff0c;画笔最小化&#xff0c;然后利用底色扣细建议先从…

java向数组中增加新元素_用Java中的新元素替换List的给定索引处的元素

java向数组中增加新元素Given a list of the integers and we have to replace it an element from specified index with a new element in java. 给定一个整数列表&#xff0c;我们必须用Java中的新元素将其替换为指定索引中的一个元素。 To replace an element in the list…

微服务架构会和分布式单体架构高度重合吗

在最近的Microservices Practitioner Summit峰会上&#xff0c;来自Facebook的工程师Ben Christensen就目前正在普遍快速增长的分布式系统与二进制依赖关系的一种反面模式发表了自己的看法。\\Christensen谈到说&#xff0c;共享类库是整个服务运行过程中最需要的部分&#xff…

北京soul_Soul高智商情侣,机器人博士邂逅科技记者,跨越1200公里来相爱

她&#xff0c;是知名媒体的科技记者&#xff0c;平时往返于帝都各大互联网媒体峰会上&#xff0c;朋友圈都是各大互联网公司创始人大佬&#xff0c;用文字记录下互联网江湖的风云变化。他&#xff0c;是魔都top大学的工业机器人博士&#xff0c;像谢尔顿一样充满科学的奇思妙想…

数据库拆分字符串函数_PHP | 不使用库函数将逗号分隔的字符串拆分为数组

数据库拆分字符串函数Given a string with comma delimited, we have to split it into an array. 给定一个以逗号分隔的字符串&#xff0c;我们必须将其拆分为一个数组。 Example: 例&#xff1a; Input: "Google,Bing,Yahoo!,DuckDuckGo"Output:arrar of strings…

arduino 休眠 节能_Arduino低功耗掉电模式看门狗唤醒

&#xfeff;最近在做一个低功耗的设备&#xff0c;发射红外来检测前面1米以内左右的地方是否有人&#xff0c;纽扣电池供电&#xff0c;需要持续工作至少两年&#xff0c;因此&#xff0c;要求设备工作电流在ua级别。(1)红外发射接收由于一般的红外发射接收(下图所示)都会比较…

Android-Dialog

Android-AlertView 我的地址&#xff1a;https://github.com/kongqw/Android-AlertView 开源地址&#xff1a;https://github.com/saiwu-bigkoo/Android-AlertView

mysql卸载后重装失败_小筑教育BIM课堂-Revit100问 [第二期] | 软件卸载

1、Revit未卸载干净&#xff0c;导致安装失败&#xff0c;怎么办&#xff1f;答&#xff1a;方法1&#xff1a;利用官方软件卸载工具UninstallTool软件将剩余残留未卸载子程序卸载干净&#xff0c;之后再安装Revit。方法2&#xff1a;如果UninstallTool软件检索不到电脑上还有相…

hdu 5631 Rikka with Graph(图)

n个点最少要n-1条边才能连通&#xff0c;可以删除一条边&#xff0c;最多删除2条边&#xff0c;然后枚举删除的1条边或2条边&#xff0c;用并查集判断是否连通&#xff0c;时间复杂度为O&#xff08;n^3&#xff09; 这边犯了个错误&#xff0c; for(int i0;i<N;i){ fa[i]i;…

电机编码器调零步骤_蒂森电梯编码器整定和主机整定大全

CT 编码器整定操作步骤1. 断开电源&#xff0c;吊起轿厢&#xff0c;空开曳引轮钢丝绳。2. 取出主板 JP5 的 9 与 10.11.13 的线并短接一起。3. 送电后确认 KAS,KAD,继电器吸合&#xff0c;接触器 KM1,KM2,KM3 也吸合&#xff0c;抱闸自动张开。注&#xff1a;保证安全回路 102…

4 曝光_荣耀户外手表GS Pro曝光:超强续航 9月4日发布

8月21日消息&#xff0c;荣耀海外官微今日官宣&#xff0c;荣耀首款主打户外功能的手表&#xff0c;将于9月4日海外发布。从其预热海报来看&#xff0c;这款手表应该就是国内已官宣的荣耀GS Pro。因为两张海报中的手表新品外观一致&#xff0c;均采用三防设计&#xff0c;圆形表…

atitit.atiOrmStoreService 框架的原理与设计 part1  概述与新特性

atitit.atiOrmStoreService 框架的原理与设计 part1 概述与新特性 1. 新特性如下 支持生成sql在无数据库连接的情况下 2. Orm设计 主要的俩个以来service如下 Inject Dsl2sqlService dsl2sqlSvr; Inject DBX dbSvr; 作者:: 绰号:老哇的爪子 &#xff08; 全名&#xff1a;&…

lightgbm 保存模型 过大_机器学习之12—Lightgbm

Lightgbm模型和GBDT以及XGboost一样&#xff0c;都是基于决策树的boosting集成模型&#xff1b;Lightgbm是一个快速高效、低内存占用、高准确度、支持并行和大规模数据处理的数据科学工具。关于GBDT和XGboost的介绍可以参考&#xff1a;大饼&#xff1a;机器学习——提升算法(A…