最近出差在北京做一個小項目,項目里需要讀取配置文件的小功能,覺得挺有參考意義的就把代碼發上來給大家參考一下。我們選擇了直接用微軟的讀取配置文件的方法。
?
這個是程序的運行設計效果,就是把這些參數可以進行靈活設置,靈活保存設置狀態。
?
程序編譯后自動會產生相應的配置文件,是跟項目的名稱一樣的配置文件。
?
讀取配置文件及保存配置的具體代碼參考如下,希望能給你節省一些時間,直接復制粘貼這個代碼就可以用了:
//------------------------------------------------------------
//?All?Rights?Reserved?,?Copyright?(C)?2010?,?CDPF?,?Ltd.?
//------------------------------------------------------------
using?System;
using?System.Configuration;
using?System.Windows.Forms;
using?Utilities;
namespace?DirectSeeding
{
????///?<summary>
????///????FrmConfig
????///?讀取配置文件
????///?
????///?修改紀錄
????///?
????///????????2011.01.14?版本:???1.0?JiRiGaLa?完善程序的注釋等、從新整理代碼。
????///????
????///?版本:1.0
????///
????///?<author>
????///????????<name>JiRiGaLa</name>
????///????????<date>2011.01.14</date>
????///?</author>?
????///?</summary>
????public?partial?class?FrmConfig?:?Form
????{
????????public?FrmConfig()
????????{
????????????InitializeComponent();
????????}
????????///?<summary>
????????///?讀取配置文件
????????///?</summary>
????????private?void?GetConfig()
????????{
????????????this.txtWriteFileName.Text?=?ConfigurationManager.AppSettings["WriteFileName"];
????????????this.txtWritePath.Text?=?ConfigurationManager.AppSettings["WritePath"].Replace("|",?Environment.NewLine);
????????????this.txtPostMessageURL.Text?=?ConfigurationManager.AppSettings["PostMessageURL"];
????????????this.txtLeasedLineURL.Text?=?ConfigurationManager.AppSettings["LeasedLineURL"];
????????}
????????private?void?FrmDirectSeeding_Load(object?sender,?EventArgs?e)
????????{
????????????this.GetConfig();
????????}
????????///?<summary>
????????///?保存配置文件
????????///?</summary>
????????private?void?SaveConfig()
????????{
????????????//?寫入參數設置
????????????Configuration?configuration?=?ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
????????????configuration.AppSettings.Settings["WriteFileName"].Value?=?this.txtWriteFileName.Text;
????????????configuration.AppSettings.Settings["WritePath"].Value?=?this.txtWritePath.Text.Trim().Replace(Environment.NewLine,?"|");
????????????configuration.AppSettings.Settings["PostMessageURL"].Value?=?this.txtPostMessageURL.Text;
????????????configuration.AppSettings.Settings["LeasedLineURL"].Value?=?this.txtLeasedLineURL.Text;
????????????configuration.Save();
????????????//?重新讀取參數
????????????ConfigurationManager.RefreshSection("appSettings");
????????????WriteFile.WriteFileName?=?ConfigurationManager.AppSettings["WriteFileName"];
????????????WriteFile.WritePath?=?ConfigurationManager.AppSettings["WritePath"].Split('|');
????????????PostMessage.PostMessageURL?=?ConfigurationManager.AppSettings["PostMessageURL"];
????????????//?PostMessage.LeasedLineURL?=?ConfigurationManager.AppSettings["LeasedLineURL"];
????????}
????????private?void?btnSavaConfig_Click(object?sender,?EventArgs?e)
????????{
????????????//?保存設置
????????????SaveConfig();
????????}
????}
}
//?All?Rights?Reserved?,?Copyright?(C)?2010?,?CDPF?,?Ltd.?
//------------------------------------------------------------
using?System;
using?System.Configuration;
using?System.Windows.Forms;
using?Utilities;
namespace?DirectSeeding
{
????///?<summary>
????///????FrmConfig
????///?讀取配置文件
????///?
????///?修改紀錄
????///?
????///????????2011.01.14?版本:???1.0?JiRiGaLa?完善程序的注釋等、從新整理代碼。
????///????
????///?版本:1.0
????///
????///?<author>
????///????????<name>JiRiGaLa</name>
????///????????<date>2011.01.14</date>
????///?</author>?
????///?</summary>
????public?partial?class?FrmConfig?:?Form
????{
????????public?FrmConfig()
????????{
????????????InitializeComponent();
????????}
????????///?<summary>
????????///?讀取配置文件
????????///?</summary>
????????private?void?GetConfig()
????????{
????????????this.txtWriteFileName.Text?=?ConfigurationManager.AppSettings["WriteFileName"];
????????????this.txtWritePath.Text?=?ConfigurationManager.AppSettings["WritePath"].Replace("|",?Environment.NewLine);
????????????this.txtPostMessageURL.Text?=?ConfigurationManager.AppSettings["PostMessageURL"];
????????????this.txtLeasedLineURL.Text?=?ConfigurationManager.AppSettings["LeasedLineURL"];
????????}
????????private?void?FrmDirectSeeding_Load(object?sender,?EventArgs?e)
????????{
????????????this.GetConfig();
????????}
????????///?<summary>
????????///?保存配置文件
????????///?</summary>
????????private?void?SaveConfig()
????????{
????????????//?寫入參數設置
????????????Configuration?configuration?=?ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
????????????configuration.AppSettings.Settings["WriteFileName"].Value?=?this.txtWriteFileName.Text;
????????????configuration.AppSettings.Settings["WritePath"].Value?=?this.txtWritePath.Text.Trim().Replace(Environment.NewLine,?"|");
????????????configuration.AppSettings.Settings["PostMessageURL"].Value?=?this.txtPostMessageURL.Text;
????????????configuration.AppSettings.Settings["LeasedLineURL"].Value?=?this.txtLeasedLineURL.Text;
????????????configuration.Save();
????????????//?重新讀取參數
????????????ConfigurationManager.RefreshSection("appSettings");
????????????WriteFile.WriteFileName?=?ConfigurationManager.AppSettings["WriteFileName"];
????????????WriteFile.WritePath?=?ConfigurationManager.AppSettings["WritePath"].Split('|');
????????????PostMessage.PostMessageURL?=?ConfigurationManager.AppSettings["PostMessageURL"];
????????????//?PostMessage.LeasedLineURL?=?ConfigurationManager.AppSettings["LeasedLineURL"];
????????}
????????private?void?btnSavaConfig_Click(object?sender,?EventArgs?e)
????????{
????????????//?保存設置
????????????SaveConfig();
????????}
????}
}
?
本文轉自jirigala_bao 51CTO博客,原文鏈接:http://blog.51cto.com/jirigala/809495