Möglichst einfache Schlüssel/Wert-paar-Datei Parsen .NET
Mein Projekt ist eine Datei, wo ich speichern Schlüssel/Wert-paar Daten, die in der Lage sein sollten zu Lesen sein und von dem Benutzer verändert werden. Ich will das Programm nur erwarten, dass die Schlüssel dort zu sein, und ich will analysieren, Sie aus der Datei so schnell wie möglich.
Konnte ich speichern Sie Sie in XML, sondern XML ist viel zu Komplex, und es würde die Traversierung von Knoten und Kind-Knoten und so weiter, alles was ich will ist Sie Klasse, das wird eine Datei generiert die Schlüssel-Wert-Paare. Ich möchte so wenig error-handling wie möglich, und ich möchte es mit so wenig code wie möglich.
Könnte ich code eine Klasse wie mich, aber ich möchte lieber lernen, wie es ist don ' E in dem Rahmen, als erfinden Sie das Rad zweimal. Gibt es einige Bauten in der Magie-Klasse .NET (3.5), die in der Lage sind, dies zu tun?
MagicClass kv = new MagicClass("Settings.ini"); //It doesn't neccesarily have to be an INI file, it can be any simple key/value pair format.
string Value1 = kv.get("Key1");
...
- Wie @Nicholas Mancuso wies darauf hin, die XML-Serialisierung ist NICHT erforderlich traversierenden Knoten, etc.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die KeyValuePair Klasse für Sie Schlüssel und Wert, dann einfach serialisieren eines Liste auf der Festplatte mit einem XMLSerializer.
Dass wäre der einfachste Ansatz, den ich fühle. Würden Sie nicht haben, um sorgen über die Traversierung der Knoten. Aufruf der Deserialisieren Funktion machen das für Sie. Der Benutzer kann editieren die Werte in der Datei, wenn Sie wollen, auch.
KeyValuePair
ist nicht serialisierbar. Detaillierte Beschreibung der Lösung, die hier diskutiert wird in diesem follow-up-Frage: stackoverflow.com/questions/2658916/...Wenn Sie ' re suchen für eine schnelle und einfache Funktions-und nicht verwenden möchten .Net app\user config-Einstellung-Dateien oder sorgen über die Serialisierung Probleme, die manchmal auftreten, von Zeit.
Die folgende statische Funktion laden kann eine Datei im Format "SCHLÜSSEL=WERT".
Hinweis: ich bin mit einem Wörterbuch, so dass die Schlüssel eindeutig sein müssen, die in der Regel, dass den Fall mit der Einstellung.
VERWENDUNG:
Ich kenne kein builtin-Klasse zum Einlesen von ini-Datei. Ich habe nini, wenn erforderlich, dies zu tun. Es ist lizenziert unter der MIT/X11-Lizenz, so dass nicht jedes Problem in einem closed-source-Programm.
Es ist sehr zu bedienen. Also, wenn Sie eine der Einstellungen.ini-Datei auf diese Weise formatiert:
Verwenden, es wäre so einfach wie:
wenn Sie möchten, dass der Benutzer in der Lage sein zu Lesen und ändern Sie die Datei, schlage ich eine Komma-separierte-pair-Mädchen, eine pro Zeile
Analyse ist einfach: Lesen Sie die Datei, trennen bei Zeilenumbruch oder Komma, dann nehmen Sie die Elemente in Paaren
Format die Datei auf diese Weise:
Lesen Sie die gesamte Datei in einen string (es ist eine einfache Bequemlichkeit Funktion, die das tut, vielleicht in der Datei oder string-Klasse), und rufen string.Split('='). Stellen Sie sicher, dass Sie auch call-string.Trim() für jedes Schlüssel-Wert-wie Sie sich durch die Liste und pop jedes paar in eine hashtable oder ein dictionary.