我对 C# 比较陌生,刚开始使用 XmlElement 和 SingleNode 方法。出于某种原因,“customSettings”一直返回 null,尽管 XML 文档已正确加载。我已经通过将其加载为字符串来检查它。到目前为止,我已经尝试了所有我能想象到的东西,包括评论中的尝试。非常感谢任何帮助或建议。这是我的 XML 文档:
编辑:使用 CodingYoshi 的解决方案,但有更好的方法吗?
编辑:更改了 NSGaga 的 XML 和代码以解决 user.config 中 NameValueCollection 的只读异常
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="users_fächer" type="System.Configuration.NameValueSectionHandler" />
</configSections>
<users_faecher>
<add key="user1" value="value1" />
<add key="user2" value="value2" />
</users_faecher>
</configuration>
代码:
string dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Users.config");
string new_fächer = input[1];
ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
configMap.ExeConfigFilename = dir;
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
ConfigurationSection myParamsSection = config.GetSection("users_faecher");
string myParamsSectionRawXml = myParamsSection.SectionInformation.GetRawXml();
XmlDocument sectionXmlDoc = new XmlDocument();
sectionXmlDoc.Load(new StringReader(myParamsSectionRawXml));
NameValueSectionHandler handler = new NameValueSectionHandler();
NameValueCollection users_fächer = handler.Create(null, null, sectionXmlDoc.DocumentElement) as NameValueCollection;
users_fächer.Set(user, new_fächer);
config.Save(ConfigurationSaveMode.Modified, true);