Frage

Gibt es eine Build-in Art und Weise in C # mit einfachen Konfigurationsdateien zu arbeiten, die nicht XML gegessen? Oder vielleicht gibt es beliebte kostenlose Bibliotheken?

Ich mache ein einfaches Werkzeug für Nicht-Programmierer zu verwenden, und ich will nicht, es erschweren, indem Benutzeroberfläche für Konfiguration Bearbeitung hinzugefügt. Ich möchte nur Benutzer (alle komfortabel genug mit Computern) nur in der Lage sein, ein paar Zeilen zu öffnen config-Datei in Notepad und bearbeiten / hinzufügen. Deshalb will ich nicht XML-basierte Konfigurationsdatei verwenden.


EDIT: Danke an alle für die Antworten! Ja, es ist nicht schwer, für die Bearbeitung von XML-basierten Konfigurations einfach ui zu binden. aber es ist nicht immer geeignet. zum Beispiel für nicht-GUI-Anwendung oder für sehr einfache Anwendung, die Sie nicht wollen mehr ui hinzuzufügen es maximal einfach zu halten. und es ist nicht einmal schwer eigenen Config-Parser zu schreiben, für Schlüssel / Paar-Einstellungen oder Blöcke oder Einstellungen durch eine Leerzeile getrennt. Aber ich wollte nur wissen, was da draußen, wie eine schnelle Suche auf Google gibt mir nur viele Seiten auf die Arbeit mit XML-basierten Konfigurations.

ich bin nicht in Vollzeit sw Entwickler, und schreibe in der Regel kleine Werkzeuge, die meine und meine Kollegen mein Leben ein wenig ezer bei der Arbeit machen, so bekannt und getesteten Lösungen unter Verwendung von natürlich vereinfacht diese Aufgabe.

War es hilfreich?

Lösung

Normalerweise verwende ich INI-Dateien für die einfache Konfiguration. Es gibt einen schönen Artikel auf der Code Project dass ein Wrapper für die native Windows bietet INI-Funktionen in Kernel32.

Andere Tipps

Sie können eine Bibliothek versuche ich genannt schrieb DotNet.Config .

Es verwendet einfache textbasierte Dateien für die Konfiguration.

Die Konfiguration wird in einer 'config.properties' Datei gespeichert, die wie folgt aussieht:

size=12
dateTime=1/12/2014
name=Terry Tester
color=Blue

items.A=hello list
items.B=guten tag list
items.C=bonjour list

numbers.X=10
numbers.Y=20
numbers.Z=30

Es enthält einen handlichen Loader, wirft und trifft Einstellungen direkt auf Variablen Mitglied basierend auf Namenskonvention (einschließlich Gruppen von Einstellungen in generische Listen Laden).

Oder Sie können einfach eine Einstellung mit einem Aufruf greifen:

  

AppSettings.Retrieve [ "mySetting"]

Sie können ein Beispiel finden .

Sie können eine Kopie greifen hier: https://github.com/jknight/DotNet.Config

Ich mag Nini, die Konfigurationsdateien unter Verwendung von XML vereinfacht, aber Sie können es auch für INI-Dateien verwenden.

http://nini.sourceforge.net/

Ich glaube, ich würde entscheiden, die Zeit zu verbringen, einen einfachen Editor zu erstellen und die Benutzer halten aus dem Config-Datei bearbeitet Geschäft. Andernfalls können Sie eine Menge Code zu schreiben, am Ende zu, alle möglichen Fehler zu fangen, die der Benutzer in dem System durch vermasseln die Konfigurationsdatei injizieren könnte. Wenn Sie das Dateiformat zu steuern und die Vorteile einer UI nehmen können, die Eingabe begrenzt, ist der Code einfacher, denke ich.

Aber, je nach Benutzer, könnten Sie einfach entscheiden sich für die Ein-pro-line Schlüssel-Separator-Wert Konvention. dass in Reading ist einfach genug.

Eines der Tools von Drittanbietern ich hat eine schmutz einfache Konfigurationsdatei. Es ist eine einfache, Text Freiform-Datei, die die Form hat:

keyword [args]

Es erwartet jede Zeile mit einem Schlüsselwort und allem, was danach auf der Linie zu starten ist einfach als Argument an das Schlüsselwort genommen. Es hat nicht den Begriff des Schlüssel / Wert-Paare als args - mehr wie nur auflistet. Die Räume sind das Trennzeichen für die Konfigurationsdatei. Möglicherweise nicht für jede Umsetzung arbeiten, aber es funktioniert für diese ein.

Die Bindung ist ziemlich einfach und Lese / aus einem gebundenen Grid Control eine XML-Datei zu schreiben, dass der Benutzer als Editor nutzen kann, beseitigt es sicherlich viele der Formatierungsprobleme, die von einem einfachen „öffnen Sie sich in Notepad“ Lösung entstehen.

Wenn Sie Ihre Benutzerbasis ziemlich versierte ist aber nicht nur Entwickler, vielleicht die Klar Lösung ausreichen würde. Wie mein Kollege oft sagt - keine Notwendigkeit, $ 100 in einer $ 2 Show. Offensichtlich wird es auf Ihre Situation abhängig.

Sie YAML verwenden könnte, aber die C # Bibliotheken verfügbar sind ziemlich unreif. YAML ist eine Untergruppe von JSON, und man könnte genauso gut verwenden, statt, hat es eine große Vielfalt von Parsern zur Verfügung, darunter diese: http://www.codeplex.com/Json , die LINQ to JSon Unterstützung hat.

Ich binde in der Regel nur die Konfiguration in einer Grid-Control oder was auch immer und lassen sie die Config in der Anwendung bearbeiten. Nicht viel UI beteiligt, wenn Sie alles halten, wie im Grunde Namen / Wert-Paare.

Win32-API hat einige praktische Funktionen, die leicht über P / Invoke aufgerufen werden kann:

ich nicht wirklich empfehlen die Benutzer auffordert / erlaubt, die Konfigurationsdateien manuell zu bearbeiten, so dass auf so viele Arten von Problemen führen kann, der kann einfach nicht effektiv antizipiert werden und verhindert werden. Ich denke, der beste Weg, um mit dieser Situation zu gehen, ist entweder ein Editor für Konfigurationsdateien zu erstellen oder einfach nur eine Einbau-Netzschnittstelle, die Ihnen Einstellungen speichern. Auf diese Weise können Sie es in einem beliebigen Format speichern und unnötige Härten vermeiden.

Was in einem INI-Format speichern, können Sie verwenden, wie andere Antworten vorgeschlagen, Nini oder < a href = "http://www.codeproject.com/KB/cs/cs_ini.aspx" rel = "nofollow noreferrer"> ein Wrapper für die nativen Funktionen von Windows INI in Kernel32 . Wenn Sie jedoch den integrierten Editor Ansatz nehmen gehen, können Sie ganz einfach XML stattdessen verwenden. .NET Framework integrierte XML-Funktionen sind sehr einfach zu bedienen.

Jetzt, während ich fühle mich stark, dass die Benutzer-Konfigurationsdateien manuell bearbeiten ist ein no-no, in einigen Fällen kann es die bevorzugte Lösung sein, sagen, wenn die Benutzergruppe klein ist und alle speziell geschult werden, wie zu bearbeiten die Dateien. Wenn Sie diesen Ansatz nehmen möchten, empfehle ich INI-Dateien, wie sie ganz einfach sind manuell zu bearbeiten, lesen und analysieren, und schreiben. Sie sollten versuchen, die zwei Bibliotheken ich für diese oben erwähnt wurde.

Insgesamt denke ich, dass Sie wirklich einen anderen Ansatz in Betracht ziehen sollten, wie in dem Benutzer erlaubt, die Dateien manuell zu bearbeiten, und stattdessen eine bieten integrierten Editor, aber natürlich nur, wenn Sie wirklich wollen, Sie nimmt die manuellen Bearbeitungs Route.

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