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?

War es hilfreich?

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 versuchen. Dies funktioniert nur, wenn Sie den Schlüssel für ein Element aus der Position ableiten kann sich, aber in diesem Fall ist es für diesen Zweck gut.

Ist es ein allgemeines Wörterbuch? Wenn ja:

XML Serializable Allgemein Wörterbuch

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top