StringDictionary wird nicht als Benutzereinstellung gespeichert

8

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?

    
Osama Al-Maadeed 08.01.2009, 11:54
quelle

3 Antworten

11

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.

    
lc. 08.01.2009 12:02
quelle
5

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%     
Marc Gravell 08.01.2009 12:52
quelle
3

Das Wörterbuch wird nicht gespeichert, weil es kein XmlSerializable-Werkzeug gibt. Ich bin mir nicht sicher, aber es scheint mir.

    
Michał Ziober 08.01.2009 13:54
quelle

Tags und Links