C# 更新/删除appSettings中的条目
我正在尝试更新我所在项目以外的其他项目的配置文件。 UpdateConfig()工作正常,但DeleteFromConfig()不会删除该条目。 假设我有这样一个条目: 添加key=“someKey”value=“oldValue”/ DeleteFromConfig()将条目保留为以前的状态,但如果我注释掉UpdateConfig中的Remove行并尝试将该值更改为“newValue”,则会得到以下结果: add key=“someKey”value=“oldValue,newValue”/ AppSettings.Settings.Remove(键)行仅删除值,而不是整个条目。 有没有办法把整件事都去掉C# 更新/删除appSettings中的条目,c#,C#,我正在尝试更新我所在项目以外的其他项目的配置文件。 UpdateConfig()工作正常,但DeleteFromConfig()不会删除该条目。 假设我有这样一个条目: 添加key=“someKey”value=“oldValue”/ DeleteFromConfig()将条目保留为以前的状态,但如果我注释掉UpdateConfig中的Remove行并尝试将该值更改为“newValue”,则会得到以下结果: add key=“someKey”value=“oldValue,newValue”/
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对其进行编辑。