C# 更新/删除appSettings中的条目

C# 更新/删除appSettings中的条目,c#,C#,我正在尝试更新我所在项目以外的其他项目的配置文件。 UpdateConfig()工作正常,但DeleteFromConfig()不会删除该条目。 假设我有这样一个条目: 添加key=“someKey”value=“oldValue”/ DeleteFromConfig()将条目保留为以前的状态,但如果我注释掉UpdateConfig中的Remove行并尝试将该值更改为“newValue”,则会得到以下结果: add key=“someKey”value=“oldValue,newValue”/

我正在尝试更新我所在项目以外的其他项目的配置文件。 UpdateConfig()工作正常,但DeleteFromConfig()不会删除该条目。 假设我有这样一个条目:

添加key=“someKey”value=“oldValue”/

DeleteFromConfig()将条目保留为以前的状态,但如果我注释掉UpdateConfig中的Remove行并尝试将该值更改为“newValue”,则会得到以下结果:

add key=“someKey”value=“oldValue,newValue”/

AppSettings.Settings.Remove(键)行仅删除值,而不是整个条目。 有没有办法把整件事都去掉

  private void UpdateConfig(string path, string key, string value)
        {
            Configuration config = ConfigurationManager.OpenExeConfiguration(path);
            config.AppSettings.Settings.Remove(key);
            config.AppSettings.Settings.Add(key, value);
            config.Save(ConfigurationSaveMode.Modified);
        }

        private void DeleteFromConfig(string path, string key)
        {
            Configuration config = ConfigurationManager.OpenExeConfiguration(path);
            config.AppSettings.Settings.Remove(key);
            config.Save(ConfigurationSaveMode.Modified);
        }

使用XmlDocument

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <appSettings>
            <add key="key1" value="3" />
            <add key="key2" value="1" />
        </appSettings>
    </configuration>

    var xmlDoc = new XmlDocument();
    xmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);

    XmlNode keyNode1 = xmlDoc.SelectSingleNode("//appSettings/add[@key='key1']");
    keyNode1.ParentNode.RemoveChild(keyNode1);

    xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
    ConfigurationManager.RefreshSection("appSettings");

var xmlDoc=新的XmlDocument();
Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
XmlNode keyNode1=xmlDoc.SelectSingleNode(//appSettings/add[@key='key1']);
keyNode1.ParentNode.RemoveChild(keyNode1);
保存(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
ConfigurationManager.RefreshSection(“应用设置”);

因为配置文件是XML,所以您可以始终使用XMLDocument对其进行编辑。