当前位置:网站首页>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

原网站

版权声明
本文为[Xiongsiyu]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/182/202207010701040385.html