我无法写入配置文件

我正在使用这个类写入配置文件。 代码已构建且应用程序启动,但每次检查app.config时,我都看不到任何内容。

可能是什么问题呢?

这是代码:

public class ConfigSettings { private ConfigSettings() { } public static string ReadSetting(string key) { return ConfigurationManager.AppSettings[key]; } public static void WriteSetting(string key, string value) { // load config document for current assembly XmlDocument doc = loadConfigDocument(); // retrieve appSettings node XmlNode node = doc.SelectSingleNode("//appSettings"); if (node == null) throw new InvalidOperationException("appSettings section not found in config file."); try { // select the 'add' element that contains the key XmlElement elem = (XmlElement)node.SelectSingleNode(string.Format("//add[@key='{0}']", key)); if (elem != null) { // add value for key elem.SetAttribute("value", value); } else { // key was not found so create the 'add' element // and set it's key/value attributes elem = doc.CreateElement("add"); elem.SetAttribute("key", key); elem.SetAttribute("value", value); node.AppendChild(elem); } doc.Save(getConfigFilePath()); } catch { throw; } } public static void RemoveSetting(string key) { // load config document for current assembly XmlDocument doc = loadConfigDocument(); // retrieve appSettings node XmlNode node = doc.SelectSingleNode("//appSettings"); try { if (node == null) throw new InvalidOperationException("appSettings section not found in config file."); else { // remove 'add' element with coresponding key node.RemoveChild(node.SelectSingleNode(string.Format("//add[@key='{0}']", key))); doc.Save(getConfigFilePath()); } } catch (NullReferenceException e) { throw new Exception(string.Format("The key {0} does not exist.", key), e); } } private static XmlDocument loadConfigDocument() { XmlDocument doc = null; try { doc = new XmlDocument(); doc.Load(getConfigFilePath()); return doc; } catch (System.IO.FileNotFoundException e) { throw new Exception("No configuration file found.", e); } } private static string getConfigFilePath() { return AppDomain.CurrentDomain.GetData("APP_CONFIG_FILE").ToString(); } } 

之后我用它写入文件:

 ConfigSettings.WriteSetting("check", "true"); 

检查YourExeName.config文件而不是app.config

您可以从System.Configuration.ConfigurationSection派生并使其非常简单:

 public class MyConfigurationSection : System.Configuration.ConfigurationSection { [ConfigurationProperty("myProperty")] public string MyProperty { get { return (string)this["myProperty"]; } set { this["myProperty"] = value; } } } 

然后在app / web.config中添加configSection。

   

您可以像这样在任何地方获取实例:

 ConfigurationManager.GetSection("myConfiguration") as MyConfigurationSection