【C#】【WPF】如何读写app.config文件
WPF生成的项目中会有.exe.config。一般是系统默认配置的
格式是xml格式,C#的项目可以直接读写这些文件。方法代码如下。
public static string GetConnectionStringsConfig(string connectionName) { string file = System.Windows.Forms.Application.ExecutablePath; System.Configuration.Configuration sysconfig = ConfigurationManager.OpenExeConfiguration(file); string connectionString = sysconfig.ConnectionStrings.ConnectionStrings[connectionName].ConnectionString.ToString(); return connectionString; }
public static void UpdateConnectionStringsConfig(string newName, string newConString) { string file = System.Windows.Forms.Application.ExecutablePath; Configuration sysconfig = ConfigurationManager.OpenExeConfiguration(file); bool exist = false; if (sysconfig.ConnectionStrings.ConnectionStrings[newName] != null) { exist = true; } if (exist) { sysconfig.ConnectionStrings.ConnectionStrings.Remove(newName); } ConnectionStringSettings mySettings = new ConnectionStringSettings(newName, newConString); sysconfig.ConnectionStrings.ConnectionStrings.Add(mySettings); sysconfig.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("ConnectionStrings"); }
以上方法可以直接向配置文件中动态写入。
还有一种方法是使用Key值的config读写
app.config的配置文件如下
<?xml version="1.0" encoding="utf-8"?>
读配置文件的方法很简单,代码如下
language = ConfigurationManager.AppSettings[Options.Language]; defaultConfigPath = ConfigurationManager.AppSettings[Options.DefaultConfigPath]; dbFilePath = ConfigurationManager.AppSettings[Options.DBFilePath];
写入配置文件的方法也很简单,方法如下
public static void WriteOptions(string keyName, string newValue) { Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); cfa.AppSettings.Settings[keyName].Value = newValue; cfa.Save(); }
调用方法完成写入指定Key值的配置文件。
这种方法仅仅在配置文件中存在指定Key值的时候可以写入Value的值。也就是修改指定Key的对应Value的值。
当然对应还有删除和添加的方法如下
public static void WriteOptions(string keyName, string newValue) { Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); //删除 cfa.AppSettings.Settings.Remove(KeyName); //添加 cfa.AppSettings.Settings.Add(KeyName,newValue); cfa.Save(); }