当前位置:网站首页>C # read and write customized config file
C # read and write customized config file
2022-07-01 07:09:00 【Xiongsiyu】
One 、 Preface
Recently, I searched for customization Config file , I found that most posts on the Internet are read-write applications exe File corresponding .config file , Here's the picture , There are few posts about reading customized configuration files .

In software development , The function of setting is often used , If there are not many attributes , use Json、XML Such storage is very troublesome , A simple storage , I need to write a lot of things , You may have to write entity classes to use , Then a certain attribute is not used , There are many places to delete , At this time, choose Microsoft to bring config File is undoubtedly the best choice .
Two 、 add to config file
have access to VS Built in add-on function , for example

Of course, you can also create a new text document , Then change the suffix , Add content again , It's all the same .
I created a new one in the root directory of the software Config Folder , Put the configuration file here


3、 ... and 、 Read and write configuration files
We build a new one Winform project , And then create a new one ConfigHelper.cs class
using System.Configuration;
namespace Utils
{
public class ConfigHelper
{
private string ConfigPath = string.Empty;
/// <summary>
/// Get the Key
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public string GetConfigKey(string key)
{
Configuration ConfigurationInstance = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap()
{
ExeConfigFilename = ConfigPath
}, ConfigurationUserLevel.None);
if (ConfigurationInstance.AppSettings.Settings[key] != null)
return ConfigurationInstance.AppSettings.Settings[key].Value;
else
return string.Empty;
}
/// <summary>
/// Set the... Specified in the configuration file Key, If Key Add if not
/// </summary>
/// <param name="key"></param>
/// <param name="vls"></param>
/// <returns></returns>
public bool SetConfigKey(string key, string vls)
{
try
{
Configuration ConfigurationInstance = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap()
{
ExeConfigFilename = ConfigPath
}, ConfigurationUserLevel.None);
if (ConfigurationInstance.AppSettings.Settings[key] != null)
ConfigurationInstance.AppSettings.Settings[key].Value = vls;
else
ConfigurationInstance.AppSettings.Settings.Add(key, vls);
ConfigurationInstance.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
return true;
}
catch
{
return false;
}
}
public ConfigHelper(string configPath)
{
ConfigPath = configPath;
}
}
}
Form1 I added a button in , There are no other controls , The code is as follows
using System;
using System.Windows.Forms;
using Utils;
namespace Test2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private ConfigHelper ConfigHelpers = null;
private void Form1_Load(object sender, EventArgs e)
{
string configPath = Application.StartupPath + "\\Config\\SystemInfo.config";
ConfigHelpers = new ConfigHelper(configPath);
}
private void button1_Click(object sender, EventArgs e)
{
// Read Key
//string value = ConfigHelpers.GetKey("COM1");
//Console.WriteLine(value);
// Set up Key
bool result = ConfigHelpers.SetConfigKey(" Game name ", "XX Creed ");
Console.WriteLine(" completion of enforcement ");
}
}
}
Read Key
string value = ConfigHelpers.GetKey("COM1");Set up Key
bool result = ConfigHelpers.SetConfigKey(" Game name ", "XX Creed ");Here I use instantiation to read , If you have how many profiles , Just instantiate how many classes , Then call read / write , It's that simple .
end
If this post is useful to you , welcome Focus on + give the thumbs-up + Leaving a message. , thank you
end
边栏推荐
猜你喜欢
随机推荐
rclone常用子命令中文解释
Pourquoi tant de gens sont - ils devenus des gestionnaires de produits? Quelles sont les perspectives de développement des gestionnaires de produits?
EasyNVS云管理平台功能重构:支持新增用户、修改信息等
ctfshow-web355,356(SSRF)
继妹变继母,儿子与自己断绝关系,世界首富马斯克,为何这么惨?
Inventory the six second level capabilities of Huawei cloud gaussdb (for redis)
LeetCode+ 71 - 75
8 figures | analyze Eureka's first synchronization registry
微软宣布开源 (GODEL) 语言模型聊天机器人
【剑指offer&牛客101】中那些高频笔试,面试题——链表篇
【LINGO】求无向图的最短路问题
Record an online interface slow query problem troubleshooting
【推荐系统】美团外卖推荐场景的深度位置交互网络DPIN的突破与畅想
Servlet 和 JSP 中的分页
为什么这么多人转行产品经理?产品经理发展前景如何?
How to use Alibaba vector font files through CDN
Operation and maintenance management system, humanized operation experience
Dirty reading, unreal reading and unrepeatable reading
Are there any practical skills for operation and maintenance management
灰度何以跌下神坛?









