当前位置:网站首页>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
边栏推荐
- LeetCode+ 71 - 75
- 解决kaniko push镜像到harbor时报错(代理导致):unexpected status code 503 Service Unavailable
- Système de gestion de l'exploitation et de l'entretien, expérience d'exploitation humanisée
- 继妹变继母,儿子与自己断绝关系,世界首富马斯克,为何这么惨?
- Webapck packaging principle -- Analysis of startup process
- 运维面临挑战?智能运维管理系统来帮您
- Understanding of Turing test and Chinese Room
- 比赛即实战!中国软件杯发布全新产业创新赛项,校企可联合参赛
- Is the account opening of GF Securities safe and reliable? How to open GF Securities Account
- Dirty reading, unreal reading and unrepeatable reading
猜你喜欢

為什麼這麼多人轉行產品經理?產品經理發展前景如何?

Problem: officeexception: failed to start and connect (III)

ctfshow-web351(SSRF)

Product learning (III) - demand list

Introduction to spark (one article is enough)

Why did grayscale fall from the altar?

微软宣布开源 (GODEL) 语言模型聊天机器人

Is it suitable for girls to study product manager? What are the advantages?

Using fuseki query when there are multiple models in TDB

【推荐技术】基于协同过滤的网络信息推荐技术matlab仿真
随机推荐
How to use Alibaba vector font files through CDN
Solve the problem that the class defined in meta-inf.services cannot be read
Why are so many people turning to product managers? What is the development prospect of product manager?
Rclone access web interface
[lingo] solve quadratic programming
Solve the problem of "unexpected status code 503 service unavailable" when kaniko pushes the image to harbor
北漂程序员深夜emo发帖求助:女朋友走了我很孤独 ......
【Tikhonov】基于Tikhonov正则化的图像超分辨率重建
Insufficient free space after clearing expired cache entries - consider increasing the maximum cache space
ctfshow-web355,356(SSRF)
Alibaba OSS postman invalid according to policy: policy condition failed: ["starts with", "key", "test/"]
Cadence OrCAD Capture “网络名”相同,但是未连接或连接错误的解放方案之nodename的用法
为什么这么多人转行产品经理?产品经理发展前景如何?
5G Massive MIMO的概念和优点总结
开源了!文心大模型ERNIE-Tiny轻量化技术,又准又快,效果全开
Système de gestion de l'exploitation et de l'entretien, expérience d'exploitation humanisée
灰度何以跌下神坛?
How to permanently configure local opencv4.5.5 for vs2019
TDB中多个model情况下使用fuseki查询
Esp32 esp-idf ADC monitors battery voltage (with correction)