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

