Ich bin relativ neu in C# und habe gerade angefangen, XmlElement und die SingleNode-Methode zu verwenden. Aus irgendeinem Grund gibt "customSettings" immer null zurück, obwohl das XML-Dokument korrekt geladen wird. Ich habe das überprüft, indem ich es als String geladen habe. Ich habe alles versucht, was ich mir vorstellen konnte, einschließlich des Versuchs im Kommentar. Jede Hilfe oder Vorschläge werden sehr geschätzt. Hier ist mein XML Doc:C# XmlElement: Warum gibt NULL immer zurück?
EDIT: funktioniert mit Lösung von CodingYoshi, aber gibt es einen besseren Weg?
EDIT: geändert XML und Code für NSGaga lesen mit Namevaluecollection in user.config einzige Ausnahme zu lösen
<?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>
Code:
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);
Nikolas könnten Sie eine kleine Konsole Projekt veröffentlichen - die 'var Custom = ConfigurationManager.GetSection ("data/Faecher") als Namevaluecollection,' nicht null zurückkehren, alles ist dort richtig. Und Sie sollten Config-Dateien nicht als XML laden, da das ziemlich lahm ist :). Es gibt ein anderes Problem hier, ich bin nur nicht sicher, was du sonst noch tust. Also strip alle anderen Sachen nur config, wie Sie es haben und dass eine Zeile – NSGaga
@ NSGaga das Problem mit dem Öffnen des Abschnitts gefunden, aber wenn ich die set-Methode auf der NameValueCollection versuche sagt mir, dass es nur lesen, obwohl es ein benutzerdefinierter Benutzer ist .config und keine app.config. Ich habe den Code und XML-Daten für Sie bearbeitet, um zu sehen, was ich jetzt habe – Nikolas
@NSGaga alle jetzt bearbeitet, haben Sie irgendeine Ahnung, warum es mich nicht bearbeiten lassen? – Nikolas