黄山秋叶 發表於 2026-1-4 10:03:30

C#之App.Config文件操作的实现

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>一 AppConfigHelper</li><li>二 读取标准 appSettings</li><ul class="second_class_ul"><li>添加appSettings</li><li>读取appSettings</li></ul><li>三 添加配置 appSettings</li><ul class="second_class_ul"></ul><li>四 修改标准 appSettings</li><ul class="second_class_ul"></ul><li>五 删除配置 appSettings</li><ul class="second_class_ul"></ul></ul></div><p class="maodian"></p><h2>一 AppConfigHelper</h2>
<div class="jb51code"><pre class="brush:csharp;">using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Helper
{
    /// &lt;summary&gt;
    /// 操作配置文件(App.config)
    /// &lt;/summary&gt;
    public class AppConfigHelper
    {

      /// &lt;summary&gt;
      /// 输入Key的值,返回配置的值
      /// &lt;/summary&gt;
      /// &lt;param name="KeyName"&gt;&lt;/param&gt;
      /// &lt;returns&gt;&lt;/returns&gt;
      public string ReadConfig(string KeyName)
      {
            Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            return cfa.AppSettings.Settings.Value;
      }

      /// &lt;summary&gt;
      /// 根据配置的名称,查询独立的数据,读取app.config
      /// &lt;/summary&gt;
      /// &lt;param name="ProName"&gt;&lt;/param&gt;
      /// &lt;param name="KeyName"&gt;&lt;/param&gt;
      /// &lt;returns&gt;&lt;/returns&gt;
      public string ReadConfig(string ProName, string KeyName)
      {
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            var mySection = config.GetSection(ProName) as CommonSection;
            foreach (CommonSection.CommonKeyValueSetting add in mySection.KeyValues)
            {
                if (add.Key == KeyName)
                {
                  return add.Value;
                }
            }
            return null;
      }

      /// &lt;summary&gt;
      /// 增加配置文件
      /// &lt;/summary&gt;
      /// &lt;param name="KeyName"&gt;&lt;/param&gt;
      /// &lt;param name="Value"&gt;&lt;/param&gt;
      public void AddConfig(string KeyName, string Value)
      {
            Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            cfa.AppSettings.Settings.Add(KeyName, Value);
            cfa.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("appSettings");
      }

      /// &lt;summary&gt;
      /// 根据配置的名称,查询独立的数据,并添加独立的内容
      /// &lt;/summary&gt;
      /// &lt;param name="ProName"&gt;&lt;/param&gt;
      /// &lt;param name="KeyName"&gt;&lt;/param&gt;
      /// &lt;param name="Value"&gt;&lt;/param&gt;
      /// &lt;returns&gt;&lt;/returns&gt;
      public void AddConfig(string ProName, string KeyName, string Value)
      {
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            var mySection = config.GetSection(ProName) as CommonSection;
            mySection.KeyValues.Add(new CommonSection.CommonKeyValueSetting() { Key = KeyName, Value = Value });
            config.Save();
            ConfigurationManager.RefreshSection(ProName);//刷新
      }

      /// &lt;summary&gt;
      /// 删除配置文件
      /// &lt;/summary&gt;
      /// &lt;param name="KeyName"&gt;&lt;/param&gt;
      public void DeleteConfig(string KeyName)
      {
            Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            cfa.AppSettings.Settings.Remove(KeyName);
            cfa.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("appSettings");
      }

      /// &lt;summary&gt;
      /// 修改配置文件数据
      /// &lt;/summary&gt;
      /// &lt;param name="KeyName"&gt;&lt;/param&gt;
      /// &lt;param name="Value"&gt;&lt;/param&gt;
      public void WriteConfig(string KeyName, string Value)
      {
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            config.AppSettings.Settings.Value = Value;
            config.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("appSettings");
      }

      /// &lt;summary&gt;
      /// 根据配置的名称,查询独立的数据,并修改内容
      /// &lt;/summary&gt;
      /// &lt;param name="ProName"&gt;&lt;/param&gt;
      /// &lt;param name="KeyName"&gt;&lt;/param&gt;
      /// &lt;param name="Value"&gt;&lt;/param&gt;
      /// &lt;returns&gt;&lt;/returns&gt;
      public void WriteConfig(string ProName, string KeyName, string Value)
      {
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            var mySection = config.GetSection(ProName) as CommonSection;
            mySection.KeyValues.Remove(KeyName);
            mySection.KeyValues.Add(new CommonSection.CommonKeyValueSetting() { Key = KeyName, Value = Value });
            config.Save();
            ConfigurationManager.RefreshSection(ProName);//刷新
      }

    }
    /// &lt;summary&gt;
    /// 配置节点基类
    /// &lt;/summary&gt;
    public class CommonSection : ConfigurationSection
    {

      private static ConfigurationProperty s_property =
            new ConfigurationProperty(string.Empty, typeof(CommonKeyValueCollection), null, ConfigurationPropertyOptions.IsDefaultCollection);

      
      public CommonKeyValueCollection KeyValues
      {
            get
            {
                return (CommonKeyValueCollection)base;
            }
      }

      /// &lt;summary&gt;
      /// 自定义一个集合
      /// &lt;/summary&gt;
      
      public class CommonKeyValueCollection : ConfigurationElementCollection
      {

            public CommonKeyValueCollection() : base(StringComparer.OrdinalIgnoreCase)
            {

            }

            new public CommonKeyValueSetting this
            {
                get { return (CommonKeyValueSetting)base.BaseGet(name); }
                set { base = value; }
            }

            protected override ConfigurationElement CreateNewElement()
            {
                return new CommonKeyValueSetting();
            }


            protected override object GetElementKey(ConfigurationElement element)
            {
                return ((CommonKeyValueSetting)element).Key;
            }

            public void Add(CommonKeyValueSetting setting)
            {
                this.BaseAdd(setting);
            }

            public void Clear()
            {
                base.BaseClear();
            }

            public void Remove(string name)
            {
                base.BaseRemove(name);
            }

      }

      /// &lt;summary&gt;
      /// 集合中的每个元素
      /// &lt;/summary&gt;
      public class CommonKeyValueSetting : ConfigurationElement
      {

            /// &lt;summary&gt;
            /// 键
            /// &lt;/summary&gt;
            
            public string Key
            {
                get { return this["key"].ToString(); }
                set { this["key"] = value; }
            }

            /// &lt;summary&gt;
            /// 值
            /// &lt;/summary&gt;
            
            public string Value
            {
                get { return this["value"].ToString(); }
                set { this["value"] = value; }
            }

      }

    }

}

</pre></div>
<p class="maodian"></p><h2>二 读取标准 appSettings</h2>
<p class="maodian"></p><h3>添加appSettings</h3>
<div class="jb51code"><pre class="brush:xml;">&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;configuration&gt;
    &lt;startup&gt;
      &lt;supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /&gt;
    &lt;/startup&gt;

        &lt;appSettings&gt;
                &lt;add key="Width" value="100"/&gt;
                &lt;add key="Height" value="200"/&gt;
                &lt;add key="Area" value="99"/&gt;
        &lt;/appSettings&gt;
&lt;/configuration&gt;
</pre></div>
<p class="maodian"></p><h3>读取appSettings</h3>
<div class="jb51code"><pre class="brush:csharp;">// 全局变量
AppConfigHelper config = new AppConfigHelper();
</pre></div>
<div class="jb51code"><pre class="brush:csharp;">string h = config.ReadConfig("Height");
MessageBox.Show(h.ToString());
</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202601/2026010410023941.png" /></p>
<p class="maodian"></p><h2>三 添加配置 appSettings</h2>
<div class="jb51code"><pre class="brush:csharp;">   config.AddConfig("XXXX", "vvvv");
   MessageBox.Show("添加成功!!");

   string va = config.ReadConfig("XXXX");

</pre></div>
<p class="maodian"></p><h2>四 修改标准 appSettings</h2>
<div class="jb51code"><pre class="brush:csharp;">         config.WriteConfig("Height", "7777");
         MessageBox.Show("修改成功!!");
</pre></div>
<p class="maodian"></p><h2>五 删除配置 appSettings</h2>
<div class="jb51code"><pre class="brush:csharp;">       config.DeleteConfig("Height");
       MessageBox.Show("删除成功!!");
</pre></div>
<p>到此这篇关于C#之App.Config文件操作的实现的文章就介绍到这了,更多相关C# App.Config文件操作内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>C#&nbsp;配置文件app.config&nbsp;和&nbsp;web.config详解</li><li>C#获取App.Config配置项的方法总结</li><li>详解C#App.config和Web.config加密</li><li>c# 配置文件App.config操作类库的方法</li><li>C#加密app.config中连接字符串的方法</li><li>C#中读取App.config配置文件代码实例</li><li>C#读写操作app.config中的数据应用介绍</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: C#之App.Config文件操作的实现