• C#简单操作app.config文件


    即将操作的app.config文件内容如下

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <!--使用自定义节点必须添加如下项, 且如下项只能在Configuration中-->
      <configSections>
        <sectionGroup name="MySettings">
          <section name="MySet" type="System.Configuration.NameValueSectionHandler"/> 
        </sectionGroup>
      </configSections>
    
      <connectionStrings>
    <!--无密码access数据库访问方式-->
        <add name="connAcc" connectionString="Provider=Microsoft.Jet.OleDb.4.0;Data Source=db.mdb"/>
       <!--有密码access数据库访问方式-->
        <add name="conn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ./MyPasswordProtected.MDB;Jet OLEDB:Database Password=MyPassword;"/>
        <add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ./MyPasswordProtected.MDB;Jet OLEDB:Database Password=MyPassword;"/>
      </connectionStrings>
    
      <appSettings>
        <!--设置替换汉字-->
        <add key="splitChar" value="@"/>
        <!--设置替换汉字-->
        <add key="splitCharNew" value="囧"/>
      <!--设置每次记忆的边框-->
      <add key="biankuang" value="几字"/>
      </appSettings>
      
      <MySettings>
        <MySet>
        <add key="8公分纸竖1" value="2.7,23,-10,0.76,230"/>
        <add key="8公分纸竖2" value="2,23,30,0.81,230"/>
        <add key ="8公分纸横" value ="1.5,23,-10,0.76,220"/>
        <add key ="彩带" value="10,23,30,0.79,220"/>
        <add key ="11公分竖" value="4,23,45,0.79,340"/>
        <add key ="11公分横" value ="4,34,30,0.76,340"/>
        </MySet>
      </MySettings> 
      <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
    

     OperatAppConfig类内容如下, 我觉得使用微软的ConfigurationManager 在没有自定义节点时非常方便, 但是如果涉及到自定义节点后将会比较麻烦, 所以莫不如直接把app.config当做xml文件, 直接操作(需要注意的是程序在运行时其实执行的是appName.exe.config文件, 并非app.config文件):

     /// <summary>
        /// 对程序运行中的appConfig进行读写
        /// </summary>
        public class OperatAppConfig
        {
            public static bool DelXmlNode(string appNode, string key)
            {
                try
                {
                    string strPath = System.Windows.Forms.Application.ExecutablePath + ".config";
                    XmlDocument xDoc = new XmlDocument();
                    xDoc.Load(strPath);
    
                    XmlNode xNode = xDoc.DocumentElement.SelectSingleNode(appNode);
                     
                    foreach (XmlNode item in  xNode.ChildNodes )
                    {
                        // System.Console.WriteLine(item.Attributes[0].Value);
                        if (item.Attributes[0].Value == key)
                        {
                            xNode.RemoveChild(item);
                        }
                    }   
    
                    xDoc.Save(strPath);
                    return true;
                }
                catch (System.Exception ex)
                {
                    return false;
                }
            }
    
            /// <summary>
            /// 对指定的节点添加子节点
            /// </summary>
            /// <param name="appNode">指定的节点名称一般为//MySettings//MySet格式</param>
            /// <param name="key">这个方法只添加add, 所以这里需要给出key和value</param>
            /// <param name="value">这个方法只添加add, 所以这里需要给出key和value</param>
            /// <returns></returns>
            public static bool AddXmlNode(string appNode,string key,string value)
            {
                try
                {
                    string strPath = System.Windows.Forms.Application.ExecutablePath + ".config";
                    XmlDocument xDoc = new XmlDocument();
                    xDoc.Load(strPath);
    
                    XmlNode xNode = xDoc.DocumentElement.SelectSingleNode(appNode);
    
                    XmlElement newElement = xDoc.CreateElement("add");
                   // newElement.InnerText = "black";
                    newElement.SetAttribute("key", key);//添加一个带有属性的节点信息
                    newElement.SetAttribute("value", value);
                    xNode.AppendChild(newElement); //追加到xNode下
                   //保存更改
                    xDoc.Save(strPath);
                    return true;
                }
                catch (System.Exception ex)
                {
                    return false;
                }
            }
    
            /// <summary>
            /// 获取某个指定节点下的所有key
            /// </summary>
            /// <param name="appKey"></param>
            /// <param name="appValue"></param>
            public static System.Collections.Generic.List<string> GetKeys(string appNode)
            {
                System.Collections.Generic.List<string> xmlNodes = new System.Collections.Generic.List<string>();
                try
                {
    
                    XmlDocument xDoc = new XmlDocument();
                    //要注意的是使用ExecutablePath所获取的一般是 appName.exe.config文件中的内容, 而不是appName.config中的内容
                    xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");
    
                    XmlNode xNode = xDoc.SelectSingleNode(appNode);
    
                    foreach (XmlElement item in xNode)
                    {
                        xmlNodes.Add(item.Attributes[0].Value + "囧" + item.Attributes[1].Value);
                    }
                    return xmlNodes;
                }
                catch
                {
                    xmlNodes.Clear();
                    xmlNodes.Add("默认值囧2,23,0,0.9,220");
                    return xmlNodes;
                }
            }
    
            /// <summary>
            /// 根据键设置值
            /// </summary>
            /// <param name="appKey"></param>
            /// <param name="appValue"></param>
            public static void SetAppConfig(string appKey, string appValue)
            {
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");
    
                var xNode = xDoc.SelectSingleNode("//appSettings");
    
                var xElem = (XmlElement)xNode.SelectSingleNode("//add[@key='" + appKey + "']");
                if (xElem != null)
                    xElem.SetAttribute("value", appValue);
                else
                {
                    var xNewElem = xDoc.CreateElement("add");
                    xNewElem.SetAttribute("key", appKey);
                    xNewElem.SetAttribute("value", appValue);
                    xNode.AppendChild(xNewElem);
                }
                xDoc.Save(System.Windows.Forms.Application.ExecutablePath + ".config");
            }
    
            /// <summary>
            /// 根据键查找值
            /// </summary>
            /// <param name="appKey"></param>
            /// <returns></returns>
            public static string GetAppConfig(string appKey)
            {
                XmlDocument xDoc = new XmlDocument();
                xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");
    
                var xNode = xDoc.SelectSingleNode("//appSettings");
    
                var xElem = (XmlElement)xNode.SelectSingleNode("//add[@key='" + appKey + "']");
    
                if (xElem != null)
                {
                    return xElem.Attributes["value"].Value;
                }
                return string.Empty;
            }
    
    
            /// <summary>
            /// 根据键查找值
            /// </summary>
            /// <param name="appKey"></param>
            /// <returns></returns>
            public static char GetAppConfigChar(string appKey)
            {
                try
                {
                    XmlDocument xDoc = new XmlDocument();
                    xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");
    
                    var xNode = xDoc.SelectSingleNode("//appSettings");
    
                    var xElem = (XmlElement)xNode.SelectSingleNode("//add[@key='" + appKey + "']");
    
                    if (xElem != null)
                    {
                        return XmlConvert.ToChar(xElem.Attributes["value"].Value);
                    }
                }
                catch {
    
                    return '囧';
                }
                return '囧';
            }
        }
    

    调用:

    //获取此节点下所有的key 
    OperatAppConfig.GetKeys("//MySettings//MySet");
    //删除此节点下指定key的节点
     bool isDel = Common.OperatAppConfig.DelXmlNode("//MySettings//MySet", this.txtZKName.Text.Trim());
    //在指定节点下新增节点
    bool isAdd = Common.OperatAppConfig.AddXmlNode("//MySettings//MySet", this.txtZKName.Text.Trim(), strValue);
    //根据键找值
    OperatAppConfig.GetAppConfigChar("splitCharNew")
    
  • 相关阅读:
    匿名方法
    Webform 服务器控件与客户端控件以及验证控件
    MVC分页方法+js
    MVC注册验证:js方法(jQuery)
    MVC新闻提交小练习+Session登录提交练习
    MVC省市区三级下拉菜单联动
    MVC三级下拉菜单
    MVC操作SQL数据库增删改查
    C#注册机与绑定软件(转发自:韩兆新的博客园的C#学习笔记——软件注册与注册机)
    报表
  • 原文地址:https://www.cnblogs.com/wxylog/p/7065085.html
Copyright © 2020-2023  润新知