C#中讀取App.config配置文件代碼實(shí)例
App.config是C#開發(fā)WinForm程序的配置文件,開發(fā)Web程序的配置文件叫Web.config。本文介紹App.config的簡(jiǎn)介使用。
我們先來打開一個(gè)App.config文件,看看它的內(nèi)容像什么樣子。
<?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文檔。它有如下幾個(gè)特點(diǎn)。
1、它有一個(gè)<configuration>標(biāo)簽,所有的配置項(xiàng)都在<configuration>標(biāo)簽下面。
2、C#內(nèi)置了一個(gè)<connectionStrings>節(jié)點(diǎn),專門用于配置數(shù)據(jù)庫(kù)連接字符串。它下面可以使用<Add>節(jié)點(diǎn)來添加多個(gè)數(shù)據(jù)庫(kù)連接字符串。
3、<appSettings>,大家了解Web.config的應(yīng)該很熟悉它,它可以配置任何key-value這樣的鍵值對(duì)。最早沒有<connectionStrings>的時(shí)候,我們也是把數(shù)據(jù)庫(kù)連接的字符串放在<appSettings>里面的。
下面我們寫一個(gè)程序來看看怎么從App.config這個(gè)程序配置文件中獲取配置信息。
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是一個(gè)ConnectionStringSettingsCollection對(duì)象
// 按數(shù)字循環(huán)得到一個(gè)個(gè)ConnectionStringSettings對(duì)象
// 每個(gè)ConnectionStringSettings對(duì)象有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類型來進(jìn)行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返回一個(gè)所有Key組成的字符串?dāng)?shù)組
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這樣的對(duì)象,所以無法使用foreach來進(jìn)行循環(huán)
//直接獲取key1的值
Console.WriteLine("\r\nGet the value of the key named \"key1\":");
Console.WriteLine(ConfigurationManager.AppSettings["key1"]);
//pause the process
Console.ReadKey();
}
}
}
上面演示了如何遍歷<connectionStrings>,如何遍歷<appSettings>,如何單獨(dú)獲取某一個(gè)connectionString,如何單獨(dú)獲取某個(gè)appSetting。大家可以收藏一下,以便以后使用時(shí)參考。
App.config和Web.config的語(yǔ)法格式是完全一樣的,只是一個(gè)用戶WinForm程序,一個(gè)用于Web程序。
App.config在編譯之后,將會(huì)被編譯到bin\Debug目錄下,文件名為“應(yīng)用程序名.exe.config”。
關(guān)于C#中App.config文件的使用,本文就介紹這么多,希望對(duì)您有所幫助,謝謝!
相關(guān)文章
C# MVC模式中應(yīng)該怎樣區(qū)分應(yīng)用程序邏輯(Controller層)和業(yè)務(wù)邏輯(Model層)?
這篇文章主要介紹了C# MVC模式中應(yīng)該怎樣區(qū)分應(yīng)用程序邏輯(Controller層)和業(yè)務(wù)邏輯(Model層)?,這也小編做.NET項(xiàng)目時(shí)經(jīng)常思考和讓人混亂的一個(gè)問題,這篇文章寫的挺好,一下清晰了許多,需要的朋友可以參考下2015-06-06
C# Dynamic關(guān)鍵字之:解析dynamic就是Object
本篇文章是對(duì)C#中dynamic關(guān)鍵字就是Object進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C#類型轉(zhuǎn)換之自定義隱式轉(zhuǎn)換和顯式轉(zhuǎn)換
本文主要為大家介紹了一個(gè)新的類型轉(zhuǎn)換方法:通過自定義隱式轉(zhuǎn)換,把不一樣的數(shù)據(jù)類型反序列化為一樣的數(shù)據(jù)類型,需要的同學(xué)可以參考一下2022-03-03
C#中Winform 實(shí)現(xiàn)Ajax效果自定義按鈕
這篇文章主要介紹了C#中Winform 實(shí)現(xiàn)Ajax效果自定義按鈕的相關(guān)資料,需要的朋友可以參考下2017-12-12
webBrowser執(zhí)行js的方法,并返回值,c#后臺(tái)取值的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄獁ebBrowser執(zhí)行js的方法,并返回值,c#后臺(tái)取值的實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12
解析從源碼分析常見的基于Array的數(shù)據(jù)結(jié)構(gòu)動(dòng)態(tài)擴(kuò)容機(jī)制的詳解
本篇文章是對(duì)從源碼分析常見的基于Array的數(shù)據(jù)結(jié)構(gòu)動(dòng)態(tài)擴(kuò)容機(jī)制進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C# WinForm調(diào)用Shell_NotifyIcon的示例代碼
這篇文章主要介紹了C# WinForm調(diào)用Shell_NotifyIcon的示例代碼,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2020-11-11

