2010-06-13 3 views
21

Mögliche Duplizieren:
What is the best way to store user settings for a .NET application?Save Settings in einer .NET-WinForms-Anwendung

ich eine Menge sehr unterschiedliche Beispiele gefunden haben, wie ein Anwendungseinstellungen speichern würde (pro Benutzer) aus eine Winforms-Anwendung.

Ich stelle mir vor, dass der richtige Weg, dies zu tun, sehr einfach ist in C# und hoffe ich kann jemanden erleuchten?

+1

Mögliche Duplikate von [Wie speichern Sie die Benutzereinstellungen für eine .NET-Anwendung am besten?] (Http://stackoverflow.com/questions/26369/what-ist-the-best-way-to-- store-user-settings-for-a-net-application) (Dies muss eine der am meisten duplizierten Fragen in den .NET-Tags sein ...) – Aaronaught

+0

Es gibt eine andere Möglichkeit zum Speichern von Einstellungen in .Net ist [Config4Net] (https://github.com/sontx/config4net), das eine Alternative zur integrierten Einstellungsfunktion von .Net ist. Sie können auch die Benutzeroberfläche Ihrer Konfiguration anzeigen lassen, um sie zur Laufzeit zu bearbeiten. Dadurch sparen Sie Zeit, insbesondere beim Erstellen von Einstellungsformularen für unsere App. –

Antwort

60

Irgendwann, die Antwort läuft auf eine Frage des Geschmacks. Ich würde sagen, Sie mit zumindest diesen Optionen am Ende dann:

  • store es in der Registrierung, in dem Sie den Schlüssel HKEY_CURRENT_USER haben. Alles darunter ist benutzerspezifisch. Dies wird normalerweise bevorzugt, wenn Sie eine Menge kleiner Schlüssel/Wert-Paare speichern möchten. Der Hauptvorteil dieses Systems besteht darin, dass Ihre Einstellungen in verschiedenen Anwendungen leicht zu finden und zu teilen sind. Um diesem Pfad zu folgen, können Sie von here starten.
  • mit .NET-Anwendungseinstellungen, bietet die einfachste Möglichkeit, auf Ihre Einstellungen zur Laufzeit zuzugreifen. Auch hier ist es besser, Schlüssel-Wert-Paare von kleinen Daten zu verwenden. IMO, die Hauptvorteile dieser Methode sind ihre Einfachheit und die Tatsache, dass es Ihnen ermöglicht, einige .NET-Klassen als Werte zu verwenden (Sie werden nicht gezwungen, alles in grundlegendere Typen umzuwandeln). Um diesem Pfad zu folgen, können Sie von here starten.
  • Speichern Sie es in Benutzerdaten Ordner, die normalerweise unter dem Profilverzeichnis des Benutzers versteckt sind. Dies ist bevorzugt, wenn Sie eine große Menge an Daten oder eine beliebige Anzahl von Dateien speichern möchten. Der Hauptvorteil dieser Methode besteht darin, dass Sie Ihre Daten wie bei jeder Datei manipulieren können (was auch ein Nachteil sein kann). Um diesem Pfad zu folgen, können Sie von here starten.
+0

Der Link ".NET-Anwendungseinstellungen verwenden" ist jetzt unterbrochen – Brett

13

Sie können die von .NET bereitgestellte Einstellungsinfrastruktur verwenden. Gehen Sie auf den Eigenschaftenseiten Ihres Projekts auf die Seite Einstellungen und definieren Sie Ihre Einstellungen. Sie können den Umfang jeder Einstellung als "Anwendung" oder "Benutzer" definieren. Eine Klasse wird automatisch generiert, um über Code auf diese Einstellungen zuzugreifen.

Um Zugriffseinstellungen Foo und Bar verwenden:

// Read settings 
textBoxFoo.Text = Properties.Settings.Default.Foo; 

// Write settings 
Properties.Settings.Default.Bar = checkBoxBar.IsChecked; 

// Save settings 
Properties.Settings.Default.Save(); 
+0

Gibt es keine Möglichkeit, dies direkt aus Ihrem Code zu tun? h. Müssen Sie diese zuerst auf den Eigenschaftenseiten der Projekte einrichten? – Jimbo

+0

ja, Einstellungen müssen in der vordefiniert sein.Einstellungsdatei –

+1

Anwendungsbereichseinstellungen werden nicht gespeichert, denke ich. –

1

ich Application Settings verwenden würde. Es ist ziemlich einfach und wird einige Probleme für Sie beheben (z. B. keinen Schreibzugriff auf den Ordner zu haben, in dem Ihre App ohne administrativen Zugriff installiert werden kann, wodurch die Verwendung von app.config für Ihre Einstellungen ausgeschlossen wird).