zoukankan      html  css  js  c++  java
  • c#,WinForm中读写配置文件App.config

    在.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 cn.zhm.common
    {
     ///


     /// 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属性值。 

  • 相关阅读:
    Android系统介绍与框架(转)
    6个值得推荐的Android开源框架简介(转)
    程序员最喜爱的12个Android应用开发框架二(转)
    android在代码中四种设置控件(以及TextView的文字颜色)背景颜色的方法
    Android数据缓存(转)
    [UI]实用案例--Shape绘制实用圆圈
    接口API测试和返回值JSON解析的插件
    Android LayoutInflater详解(转)
    一个json字符串
    Android中设定EditText的输入长度(转)
  • 原文地址:https://www.cnblogs.com/wantingqiang/p/1514183.html
Copyright © 2011-2022 走看看