WPF 读写自定义配置文件

程序集如下

using System.Windows;

namespace WpfApp1 {
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window {

        UserConfig UserConfig1 = new UserConfig();
        public MainWindow() {
            InitializeComponent();
            var res = UserConfig1.Init(System.Environment.CurrentDirectory + "/User.config");//指定配置文件路径
            if (res) {
                var City = UserConfig1.GetConfig("城市");//读取键值
                UserConfig1.SetConfig("国家", "中国");//写入键值
                var Country = UserConfig1.GetConfig("国家");//读取写入后的键值
                MessageBox.Show($"{Country}的首都是{City}");
            }
        }
    }
}
MainWindow.xaml.cs
using System.Configuration;
using System.Linq;

namespace WpfApp1 {
    public class UserConfig {

        private Configuration configObject;

        //指定配置文件路径
        public bool Init(string configPath) {
            ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
            fileMap.ExeConfigFilename = configPath;
            configObject = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
            if (configObject.HasFile)
                return true;
            else
                return false;
        }
        //设置键值
        public bool SetConfig(string key, string value) {
            try {
                if (!configObject.AppSettings.Settings.AllKeys.Contains(key))
                    configObject.AppSettings.Settings.Add(key, value);
                else
                    configObject.AppSettings.Settings[key].Value = value;
                configObject.Save(ConfigurationSaveMode.Modified);
                return true;
            }
            catch { return false; }
        }

        //获取键值
        public string GetConfig(string key) {
            string val = string.Empty;
            if (configObject.AppSettings.Settings.AllKeys.Contains(key))
                val = configObject.AppSettings.Settings[key].Value;
            return val;
        }
    }
}
UserConfig.cs

程序没运行之前打开User.config。里面只有一个键值“城市-北京”

 

 运行程序

 再次打开配置文件User.config

 

posted @ 2022-12-04 11:32  阿坦  阅读(1075)  评论(0)    收藏  举报