例子:
在這個App.config配置文件中,我添加了4個參數,App.config參數類似HashTable都是鍵/值對
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="theDate" value="2015-07-20 16:25"/>
<add key="theName" value="Alice"/>
<add key="theType" value="NBA"/>
<add key="thePrice" value="12500.00"/>
</appSettings>
</configuration>
那如何訪問App.config配置文件中的參數值呢?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
namespace AppConfigDemo
{
class Program
{
static void Main(string[] args)
{
//判斷App.config配置文件中是否有Key(非null)
if (ConfigurationManager.AppSettings.HasKeys())
{
//循環遍歷出配置文件中的所有的鍵Key
foreach (string s in ConfigurationManager.AppSettings)
{
Console.WriteLine(s);
}
}
Console.ReadKey();
}
}
}
使用for循環遍歷Key的代碼如下:
static void Main(string[] args)
{
//判斷App.config配置文件中是否有Key(非null)
if (ConfigurationManager.AppSettings.HasKeys())
{
//循環遍歷出配置文件中的所有的鍵Key
for (int i = 0; i < ConfigurationManager.AppSettings.Count; i++)
{
Console.WriteLine(ConfigurationManager.AppSettings.GetKey(i));
}
}
Console.ReadKey();
}
通過Key訪問Value的方法:
static void Main(string[] args)
{
//判斷App.config配置文件中是否有Key(非null)
if (ConfigurationManager.AppSettings.HasKeys())
{
//獲取“theDate”鍵的Value
foreach (string s in ConfigurationManager.AppSettings.GetValues("theDate"))
{
Console.WriteLine(s);
}
}
Console.ReadKey();
}
如果你想獲取所有Key的Value集合,那該怎麼辦呢?
思路:將所有的Key遍歷出後保存在一個容器裡(例如:數組),然後用Key匹配找出Value即可。
代碼如下:
static void Main(string[] args)
{
//判斷App.config配置文件中是否有Key(非null)
if (ConfigurationManager.AppSettings.HasKeys())
{
List<string> theKeys = new List<string>(); //保存Key的集合
List<string> theValues = new List<string>(); //保存Value的集合
//遍歷出所有的Key並添加進theKeys集合
foreach (string theKey in ConfigurationManager.AppSettings.Keys)
{
theKeys.Add(theKey);
}
//根據Key遍歷出所有的Value並添加進theValues集合
for (int i = 0; i < theKeys.Count; i++)
{
foreach (string theValue in ConfigurationManager.AppSettings.GetValues(theKeys[i]))
{
theValues.Add(theValue);
}
}
//驗證一下
Console.WriteLine("*************Key*************");
foreach (string s in theKeys)
{
Console.WriteLine(s);
}
Console.WriteLine("************Value************");
foreach (var item in theValues)
{
Console.WriteLine(item);
}
}
Console.ReadKey();
}
