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 @   阿坦  阅读(953)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示