在.Net中提供了配置文件,让我们可以很方面的处理配置信息,这个配置是XML格式的。而且.Net中已经提供了一些访问这个文件的功能。



1、读取配置信息

下面是一个配置文件的具体内容:

<!-- 此处显示用户应用程序和配置的属性设置。-->

<!-- 示例: -->

<add key="coal" value="一二三" />

<add key="inWellTime" value="5" />



.Net提供了可以直接访问(注意大小写)元素的方法,在这元素中有很多的子元素,这些子元素名称都是“add”,有两个属性分别是“key”和“value”。一般情况下我们可以将自己的配置信息写在这个区域中,通过下面的方式进行访问:



String ConString=System.Configuration.ConfigurationSettings.AppSettings["inWellTime"];



在AppSettings后面的是子元素的key属性的值,例如AppSettings["inWellTime"],我们就是访问这个子元素,它的返回值就是“5”,即value属性的值。



2、设置配置信息

如果配置信息是静态的,我们可以手工配置,要注意格式。如果配置信息是动态的,就需要我们写程序来实现。在.Net中没有写配置文件的功能,我们可以使用操作XML文件的方式来操作配置文件。



写了个WinForm中读写配置文件App.config的类

代码如下:



using System;

using System.Configuration;

using System.Xml;

using System.Data;

namespace a05

{

    /// ConfigClass 的摘要说明。

    ///

    public class ConfigClass

    {

        public string strFileName;

        public string configName;

        public string configValue;

        public ConfigClass()

        {

            //

            // TODO: 在此处添加构造函数逻辑

            //

        }

        public string ReadConfig(string configKey)

        {

            configValue = "";

            configValue = ConfigurationSettings.AppSettings["" + configKey + ""];

            return configValue;

        }

        //得到程序的config文件的名称以及其所在的全路径

        public void SetConfigName(string strConfigName)

        {

            configName = strConfigName;

            //获得配置文件的全路径

            GetFullPath();

        }

        public void GetFullPath()

        {

            //获得配置文件的全路径

            strFileName = AppDomain.CurrentDomain.BaseDirectory.ToString() + configName;

        }

        public void SaveConfig(string configKey, string configValue)

        {

            XmlDocument doc = new XmlDocument();

            doc.Load(strFileName);

            //找出名称为“add”的所有元素

            XmlNodeList nodes = doc.GetElementsByTagName("add");

            for (int i = 0; i < nodes.Count; i++)

            {

                //获得将当前元素的key属性

                XmlAttribute att = nodes[i].Attributes["key"];

                //根据元素的第一个属性来判断当前的元素是不是目标元素

                if (att.Value == "" + configKey + "")

                {

                    //对目标元素中的第二个属性赋值

                    att = nodes[i].Attributes["value"];

                    att.Value = configValue;

                    break;

                }

            }

            //保存上面的修改

            doc.Save(strFileName);

        }

    }

}

 



应用如下:

读取:

ConfigClass config = new ConfigClass();

string coal = config.ReadConfig("coal");

this.tbOpenFile.Text = config.ReadConfig("inWellTime");


写:

ConfigClass config = new ConfigClass();

//得到程序的config名:DataOperate.exe.config;

config.SetConfigName("DataOperate.exe.config");

config.SaveConfig("coal","三二一");

config.SaveConfig("inWellTime","10");


注意:当修改完App.config。文件后,程序中用到的App.config文件的“key”对应的“value”值需要重读,否则修改后修改并不能立即起作用,而要等下次程序重启后才可以读取到修改后的App.config属性值。