当前位置:网站首页>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
边栏推荐
- Are there any practical skills for operation and maintenance management
- 运维管理有什么实用的技巧吗
- Figure out the difference between event coordinates screenx, clientx, pagex and offsetx
- How the esp32 deep sleep current is lower than 10uA
- Is it safe to buy funds on the brokerage account
- 热烈祝贺五行和合酒成功挂牌
- Is it suitable for girls to study product manager? What are the advantages?
- 自动化测试平台(十三):接口自动化框架与平台对比及应用场景分析及设计思路分享
- C language implementation [Sanzi chess game] (step analysis and implementation source code)
- 发现了一个 MySQL 的巨坑:update 更新别再用影响行数做判断了!!!
猜你喜欢

赌上了绩效,赢了公司CTO,我要搭DevOps平台!

比赛即实战!中国软件杯发布全新产业创新赛项,校企可联合参赛

JSP - 分页

The game is real! China software cup releases a new industrial innovation competition, and schools and enterprises can participate in it jointly

【LINGO】求无向图的最短路问题

Servlet 和 JSP 中的分页

【计网】(一) 集线器、网桥、交换机、路由器等概念

【剑指offer&牛客101】中那些高频笔试,面试题——链表篇

Figure out the difference between event coordinates screenx, clientx, pagex and offsetx

Alibaba OSS postman invalid according to policy: policy condition failed: ["starts with", "key", "test/"]
随机推荐
北漂程序员深夜emo发帖求助:女朋友走了我很孤独 ......
Is it safe to buy funds on Alipay? Where can I buy funds
C# Newtonsoft.Json中JObject的使用
【LINGO】求解二次规划
Is the account opening of GF Securities safe and reliable? How to open GF Securities Account
1286_ Implementation analysis of task priority setting in FreeRTOS
Inventory the six second level capabilities of Huawei cloud gaussdb (for redis)
How to enter the Internet industry and become a product manager? How to become a product manager without project experience?
记一次线上接口慢查询问题排查
Principle of introducing modules into node
开源了!文心大模型ERNIE-Tiny轻量化技术,又准又快,效果全开
[lingo] solve quadratic programming
转行做产品经理,如何挑选产品经理课程?
代码实战——从零开始搭建自己的Diffusion models/Score-based generative models
【分类模型】Q 型聚类分析
热烈祝贺五行和合酒成功挂牌
go-etcd
如何画产品架构图?
Illusory and simple screen raindrop post-processing effect
【推荐系统】美团外卖推荐场景的深度位置交互网络DPIN的突破与畅想