Ich habe eine Benutzerbereichseinstellung mit dem Typ "System.Collections.Specialized.StringDictionary" erstellt. Immer wenn ich die lokalen Einstellungen öffne, kann ich es in der Konfiguration sehen, aber es ist leer.
Ich habe andere Benutzereinstellungen, die korrekt speichern, aber dieses Wörterbuch scheint überhaupt nicht zu speichern.
Gibt es etwas, was ich tun muss, um ein Wörterbuch zum Speichern zu bekommen?
Das Problem ist, dass das Dictionary
nicht zu XML serialisiert (obwohl es wirklich sollte). Sie haben zwei Möglichkeiten. Sie können Ihre eigenen Serialisierungsmethoden für das Wörterbuch angeben, oder Sie können schummeln.
Wenn es Ihnen nicht wichtig ist, die Werte im XML-Code lesen / bearbeiten zu können, können Sie der Einstellung ein [SettingSerializeAs(SettingsSerializeAs.Binary)]
-Attribut hinzufügen. Erledigt den Job, aber es ist der schnelle und schmutzige Ansatz.
Ich kenne keine speziellen Probleme oder Problemumgehungen für die Arbeit mit StringDictionary
in den Einstellungen, aber vielleicht Side-Step das Problem und nur mit einer Zeichenfolge arbeiten? Sie könnten die Daten als xml serialisieren, oder (vielleicht einfacher) nur eine durch Schlüssel / Werte getrennte Zeichenfolge? Beachten Sie, dass DbConnectionStringBuilder
eine einfache Möglichkeit bietet, dies zu tun (wie unten).
Die Token-Zeichenfolge ist "abc = def; ghi = jkl", aber sie behandelt automatisch ausgehende Regeln usw. für komplexere Daten. Einen Versuch wert?
%Vor%Das Wörterbuch wird nicht gespeichert, weil es kein XmlSerializable-Werkzeug gibt. Ich bin mir nicht sicher, aber es scheint mir.