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}"); } } } }
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; } } }
程序没运行之前打开User.config。里面只有一个键值“城市-北京”


运行程序

再次打开配置文件User.config


浙公网安备 33010602011771号