2013年2月24日星期日

C# 读取保存App.config配置文件的完整源码参考




   最近出差在北京做一个小项目,项目里需要读取配置文件的小功能,觉得挺有参考意义的就把代码发上来给大家参考一下。我们选择了直接用微软的读取配置文件的方法。


这个是程序的运行设计效果,就是把这些参数可以进行灵活设置,灵活保存设置状态。

程序编译后自动会产生相应的配置文件,是跟项目的名称一样的配置文件。

读取配置文件及保存配置的具体代码参考如下,希望能给你节省一些时间,直接复制粘贴这个代码就可以用了:


//------------------------------------------------------------
// 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();
        }
    }
}





将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。

没有评论:

发表评论