C# App.config配置文件的讲解
App.config是C#开发WinForm程序的配置文件,开发Web程序的配置文件叫Web.config。本文介绍App.config的简介使用。
我们先来打开一个App.config文件,看看它的内容像什么样子。
|
1 2 3 4 5 6 7 8 9 10 |
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="conn" connectionString="this is connection string"/> </connectionStrings> <appSettings> <add key="key1" value="value1" /> <add key="key2" value="value2" /> </appSettings> </configuration> |
从这段代码可以看出,App.config完全是xml文档。它有如下几个特点。
1、它有一个<configuration>标签,所有的配置项都在<configuration>标签下面。
2、C#内置了一个<connectionStrings>节点,专门用于配置数据库连接字符串。它下面可以使用<Add>节点来添加多个数据库连接字符串。
3、<appSettings>,大家了解Web.config的应该很熟悉它,它可以配置任何key-value这样的键值对。最早没有<connectionStrings>的时候,我们也是把数据库连接的字符串放在<appSettings>里面的。
下面我们写一个程序来看看怎么从App.config这个程序配置文件中获取配置信息。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
using System; using System.Collections.Generic; using System.Collections; using System.Linq; using System.Text; using System.Configuration; namespace AppConfig { class Program { static void Main(string[] args) { Console.WriteLine("ConnectionStrings:"); // ConfigurationManager.ConnectionStrings是一个ConnectionStringSettingsCollection对象 // 按数字循环得到一个个ConnectionStringSettings对象 // 每个ConnectionStringSettings对象有Name和ConnectionString属性 for (int i = 0; i < ConfigurationManager.ConnectionStrings.Count; i++) { string name = ConfigurationManager.ConnectionStrings[i].Name; string connectionString = ConfigurationManager.ConnectionStrings[i].ConnectionString; Console.WriteLine(i.ToString() + ". " + name + " = " + connectionString); } //也可以如下操作,使用ConnectionStringSettings类型来进行foreach遍历 foreach (ConnectionStringSettings conn in ConfigurationManager.ConnectionStrings) { string name = conn.Name; string connectionString = conn.ConnectionString; Console.WriteLine(name + " = " + connectionString); } //直接获取conn的值 Console.WriteLine("\r\nGet the value of the node named \"conn\":"); Console.WriteLine(ConfigurationManager.ConnectionStrings["conn"].ConnectionString); Console.WriteLine(""); Console.WriteLine("AppSettings:"); //AppSettings是NameValueConnection类型,使用AllKeys返回一个所有Key组成的字符串数组 string[] keys = ConfigurationManager.AppSettings.AllKeys; for (int i = 0; i < keys.Length; i++) { string key = keys[i]; //通过Key来索引Value string value = ConfigurationManager.AppSettings[key]; Console.WriteLine(i.ToString() + ". " + key + " = " + value); } // 没有NameValuePair这样的对象,所以无法使用foreach来进行循环 //直接获取key1的值 Console.WriteLine("\r\nGet the value of the key named \"key1\":"); Console.WriteLine(ConfigurationManager.AppSettings["key1"]); //pause the process Console.ReadKey(); } } } |
上面演示了如何遍历<connectionStrings>,如何遍历<appSettings>,如何单独获取某一个connectionString,如何单独获取某个appSetting。大家可以收藏一下,以便以后使用时参考。
App.config和Web.config的语法格式是完全一样的,只是一个用户WinForm程序,一个用于Web程序。
App.config在编译之后,将会被编译到bin\Debug目录下,文件名为“应用程序名.exe.config”。
关于C#中App.config文件的使用,本文就介绍这么多,希望对您有所帮助,谢谢!
C# App.config配置文件的讲解的更多相关文章
- C# 读写App.config配置文件的方法
我们经常会希望在程序中写入一些配置信息,例如版本号,以及数据库的连接字符串等.你可能知道在WinForm应用程序中可以利用Properties.Settings来进行类似的工作,但这些其实都利用了Ap ...
- C#中动态读写App.config配置文件
转自:http://blog.csdn.net/taoyinzhou/article/details/1906996 app.config 修改后,如果使用cofnigurationManager立即 ...
- 关于App.config配置文件
今天在做复习的时候,突然发现自己无法读取配置文件中的数据库连接字符串,而且检查了半天也没找出原因,最后求助万能的度娘才得以解决—— 1.App.config配置文件在项目中添加后不要修改名称,否则会出 ...
- C# 读写App.config配置文件
一.C#项目中添加App.config配置文件 在控制台程序中,默认会有一个App.config配置文件,如果不小心删除掉,或者其他程序需要配置文件,可以通过添加得到. 添加步骤:右键项目名称,选择“ ...
- 【Core】.NET Core中读取App.config配置文件
1.项目中添加App.config文件 因为.NET Core的项目本质是控制台应用,所以ConfigurationManager的API会去默认读取app.config配置文件,而不是web.con ...
- 读写App.config配置文件的方法
我们经常会希望在程序中写入一些配置信息,例如版本号,以及数据库的连接字符串等.你可能知道在WinForm应用程序中可以利用Properties.Settings来进行类似的工作,但这些其实都利用了Ap ...
- 修改 App.Config 配置文件 C#
[转]在WCF程序中动态修改app.config配置文件 今天在个WCF程序中加入了修改配置文件的功能.我是直接通过IO操作修改的app.config文件内容,修改后发现发现其并不生效,用Google ...
- 【C#】#103 动态修改App.config配置文件
对 C/S模式 下的 App.config 配置文件的AppSetting节点,支持配置信息现改现用,并可以持久保存. 一. 先了解一下如何获取 配置信息里面的内容[获取配置信息推荐使用这个] 1.1 ...
- C# 读App.config配置文件[2]: .Net Core框架
C# 读App.config配置文件[1]:.Net Framework框架 C# 读App.config配置文件[2]: .Net Core框架 网上都是.net framework读取配置文件的方 ...
随机推荐
- jQuery判断当前元素是第几个元素&获取第N个元素
假设有下面这样一段HTML代码: <ul> <li>jQuery判断当前元素是第几个元素示例</li> <li>jQuery获取第N个元素示例</ ...
- [转] MMO即时战斗:地图角色同步管理和防作弊实现
一.前言 无论是端游.页游.手游如果是采用了MMO即时战斗游戏模式,基本都会遇到同屏多角色实时移动.释放技能.战斗等场景,于是自然也需要实现如何管理同屏内各种角色的信息同步:例如角色的位置.以及角色身 ...
- IDEA github的应用
1.下载并安装一个git 一直点下一步就可以 2.去github官网注册一个账号 https://github.com/ 2.1点击Sign up 进入注册页面 2.2填写注册信息,点击Create ...
- 深入浅出Ajax(五)
function initPage() { alert("3+3");//3+3 alert(eval("3+3")); //6 //eval()函数可以解析. ...
- 转 Encoding is Not Encryption 编码和加密的区别
昨天跟别人聊天的时候,别人把base64说成了加密. 我并不是扣字眼,但是做为一个IT技术人员我认为分辨加密和编码的区别算是一个常识. It's unfortunate that the words ...
- 2016"百度之星" - 资格赛(Astar Round1) Problem D
排个序,map直接搞. #include <stdio.h> #include <math.h> #include<cstring> #include<cma ...
- (译)Windsor入门教程---第四部分 整合
介绍: 目前为止,已经介绍了应用程序的各个部分.首先是添加了Windsor程序集,然后是添加了控制器工厂,还添加了installer类来注册控制器.虽然但是我们还没用在应用程序中调用他们.在这 ...
- nginx 防 webshell 跨目录
对于在一台服务器上有多个虚拟主机的人来说,Apache有一个很好用的地方---配置php_admin_value,在里面配置一下 open_basedir就可以了. 但是Nginx却没有这样的设置 ...
- Spark 的combineByKey函数
在Spark中有许多聚类操作是基于combineByKey的,例如group那个家族的操作等.所以combineByKey这个函数也是比较重要,所以下午花了点时间看来下这个函数.也参考了http:// ...
- HTML表格边框的设置小技巧-表格
对于很多初学HTML的人来说,表格<table>是最常用的标签了,但对于表格边框的控制,很多初学者却不甚其解. 一般我们用表格的时候总会给它个border属性,比如:<table b ...