Wie Schlüssel-Wert-Paare in Anwendungseinstellungen zur Laufzeit speichern?
-
05-07-2019 - |
Frage
Wie können dynamische Key-Wert-Paare von Objekten in app.config gespeichert werden bei der Verwendung der Anwendungseinstellungen api, zur Laufzeit?
Ich habe versucht, meinen Kopf um zu bekommen, und ich kann kein sinnvolles Beispiel oder Dokumentation.
Ich scheint, dass Wörterbuch Klassen .Net kann nicht in XML serialisiert werden, um sie in app.config speichern
Ist der einzige Weg, es zu tun, indem Sie benutzerdefinierte XML-serialisierten Klassen verwenden, oder gibt es noch andere Möglichkeiten?
Lösung 2
Nach einiger lästigen Suchen net, ich habe einen sehr guten gefunden (wenn auch sehr lange) Artikel, der das .Net Konfigurationsmodell in dept beschreibt:
Entwirren Sie die Geheimnisse von .NET 2.0 Konfiguration
Ich fand auch etwas sehr nützlich:
Konfiguration Abschnitt Designer
Ein Visual Studio Hinzufügen für Konfigurationsabschnitte visuell entwerfen und zum Erzeugen der coresponging XSD-Dateien. Ich hoffe, dass jemand dies nützlich findet.
Andere Tipps
Sie sollten in der Lage sein, so etwas zu tun:
// Open App.Config of executable
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// Add an Application Setting with a name Key and a Value stored in variable called Value
config.AppSettings.Settings.Add("Key", Value );
// Save the changes in App.config file.
config.Save(ConfigurationSaveMode.Modified);
Haben dachte immer, es war eine schlechte Praxis betrachtet während der Laufzeit zu ändern app.config. Die app.config sollte für Programm-Setup und Konfiguration verwendet werden; nicht für Dinge, die dynamisch sind, dass die Anwendung tatsächlich modifiziert wird.
Schlagen Sie seperate "KeyValue.xml" Datei für dynamische Objekte erstellen.
Je nachdem, was genau Sie benötigen, können Sie System.Collections.ObjectModel.KeyedCollection
Ist es ein allgemeines Wörterbuch? Wenn ja: