C#之App.Config文件操作的實現(xiàn)
更新時間:2026年01月04日 10:03:30 作者:*Major*-莙工科技有限公司
AppConfigHelper提供了一種方便的方式來讀取、添加、修改和刪除應(yīng)用程序配置文件中的配置項,本文主要介紹了C#之App.Config文件操作的實現(xiàn),感興趣的可以了解一下
一 AppConfigHelper
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Helper
{
/// <summary>
/// 操作配置文件(App.config)
/// </summary>
public class AppConfigHelper
{
/// <summary>
/// 輸入Key的值,返回配置的值
/// </summary>
/// <param name="KeyName"></param>
/// <returns></returns>
public string ReadConfig(string KeyName)
{
Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
return cfa.AppSettings.Settings[KeyName].Value;
}
/// <summary>
/// 根據(jù)配置的名稱,查詢獨立的數(shù)據(jù),讀取app.config
/// </summary>
/// <param name="ProName"></param>
/// <param name="KeyName"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 增加配置文件
/// </summary>
/// <param name="KeyName"></param>
/// <param name="Value"></param>
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");
}
/// <summary>
/// 根據(jù)配置的名稱,查詢獨立的數(shù)據(jù),并添加獨立的內(nèi)容
/// </summary>
/// <param name="ProName"></param>
/// <param name="KeyName"></param>
/// <param name="Value"></param>
/// <returns></returns>
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); //刷新
}
/// <summary>
/// 刪除配置文件
/// </summary>
/// <param name="KeyName"></param>
public void DeleteConfig(string KeyName)
{
Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
cfa.AppSettings.Settings.Remove(KeyName);
cfa.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
/// <summary>
/// 修改配置文件數(shù)據(jù)
/// </summary>
/// <param name="KeyName"></param>
/// <param name="Value"></param>
public void WriteConfig(string KeyName, string Value)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings[KeyName].Value = Value;
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
/// <summary>
/// 根據(jù)配置的名稱,查詢獨立的數(shù)據(jù),并修改內(nèi)容
/// </summary>
/// <param name="ProName"></param>
/// <param name="KeyName"></param>
/// <param name="Value"></param>
/// <returns></returns>
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); //刷新
}
}
/// <summary>
/// 配置節(jié)點基類
/// </summary>
public class CommonSection : ConfigurationSection
{
private static ConfigurationProperty s_property =
new ConfigurationProperty(string.Empty, typeof(CommonKeyValueCollection), null, ConfigurationPropertyOptions.IsDefaultCollection);
[ConfigurationProperty("", Options = ConfigurationPropertyOptions.IsDefaultCollection)]
public CommonKeyValueCollection KeyValues
{
get
{
return (CommonKeyValueCollection)base[s_property];
}
}
/// <summary>
/// 自定義一個集合
/// </summary>
[ConfigurationCollection(typeof(CommonKeyValueSetting))]
public class CommonKeyValueCollection : ConfigurationElementCollection
{
public CommonKeyValueCollection() : base(StringComparer.OrdinalIgnoreCase)
{
}
new public CommonKeyValueSetting this[string name]
{
get { return (CommonKeyValueSetting)base.BaseGet(name); }
set { base[name] = 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);
}
}
/// <summary>
/// 集合中的每個元素
/// </summary>
public class CommonKeyValueSetting : ConfigurationElement
{
/// <summary>
/// 鍵
/// </summary>
[ConfigurationProperty("key", IsRequired = true)]
public string Key
{
get { return this["key"].ToString(); }
set { this["key"] = value; }
}
/// <summary>
/// 值
/// </summary>
[ConfigurationProperty("value", IsRequired = true)]
public string Value
{
get { return this["value"].ToString(); }
set { this["value"] = value; }
}
}
}
}
二 讀取標準 appSettings
添加appSettings
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<appSettings>
<add key="Width" value="100"/>
<add key="Height" value="200"/>
<add key="Area" value="99"/>
</appSettings>
</configuration>
讀取appSettings
// 全局變量 AppConfigHelper config = new AppConfigHelper();
string h = config.ReadConfig("Height");
MessageBox.Show(h.ToString());

三 添加配置 appSettings
config.AddConfig("XXXX", "vvvv");
MessageBox.Show("添加成功?。?);
string va = config.ReadConfig("XXXX");
四 修改標準 appSettings
config.WriteConfig("Height", "7777");
MessageBox.Show("修改成功?。?);
五 刪除配置 appSettings
config.DeleteConfig("Height");
MessageBox.Show("刪除成功?。?);
到此這篇關(guān)于C#之App.Config文件操作的實現(xiàn)的文章就介紹到這了,更多相關(guān)C# App.Config文件操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用FluentScheduler實現(xiàn)觸發(fā)定時任務(wù)
FluentScheduler是.Net平臺下的一個自動任務(wù)調(diào)度組件,這篇文章主要為大家詳細介紹了C#如何使用FluentScheduler實現(xiàn)觸發(fā)定時任務(wù),感興趣的小伙伴可以了解下2023-12-12
C#代碼實現(xiàn)將Excel(XLS/XLSX)文件轉(zhuǎn)為Markdown格式
將?Excel?文件轉(zhuǎn)換為?Markdown,可以方便地將結(jié)構(gòu)化數(shù)據(jù)嵌入技術(shù)文檔,本文將介紹如何使用?C#?結(jié)合Spire.XLS?for?.NET庫,編程實現(xiàn)?Excel?文件到?Markdown?格式的轉(zhuǎn)換,有需要的可以了解下2026-03-03
C#中將xml文件反序列化為實例時采用基類還是派生類的知識點討論
在本篇文章里小編給大家整理的是關(guān)于C#中將xml文件反序列化為實例時采用基類還是派生類的知識點討論,有需要的朋友們學(xué)習(xí)下。2019-11-11
使用aspose.word 第三方的插件實現(xiàn)導(dǎo)出word
本文給大家分享的是一個使用使用aspose.word 第三方的插件實現(xiàn)導(dǎo)出word的實例,十分的實用,有需要的小伙伴可以參考下。2015-06-06
C# IEnumerable和IEnumerator接口淺析
本文主要介紹了C#中IEnumerable和IEnumerator接口的相關(guān)知識,具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02

