2011-01-13 6 views
0

Ich habe eine einfache Anwendung. Um genauer zu sein, ist dies Visual Studio Addin. Der Client muss mehrere Einstellungen angeben (String, Int, Dezimal usw.)Wie speichern Sie Anwendungseinstellungen in Datei?

Ich muss in der Lage sein, es zur Startzeit zu laden und speichern, wenn geändert.

Sagen wir der Einfachheit halber habe ich alle Einstellungen in einer Klasse AppSettings.

Ich kann natürlich DataContractSerializer verwenden, um AppSettings serialisieren/deserialisieren, aber Ich denke, dass es einige Standard Weg geben muss.

Antwort

1

Es gibt Anwendungseinstellungen von Microsoft:

http://msdn.microsoft.com/en-us/library/a65txexh.aspx?appId=Dev10IDEF1&l=EN-US&k=k(APPLICATIONSETTINGSOVERVIEW);k(TargetFrameworkMoniker-%22.NETFRAMEWORK&k=VERSION=V4.0%22)&rd=true

Sie es wie folgt verwenden können:

Properties.Settings.Default.DumpHeader = dumpHeader; 
Properties.Settings.Default.DumpFooter = dumpFooter; 

Properties.Settings.Default.Save(); 

und Laden funktioniert ähnlich. Aber Sie müssen zuerst eine .settings-Datei definieren. Es ist aus dem WPF-Framework, nicht sicher, ob es auch für WinForms funktioniert.

ähnliche Frage mit einer ähnlichen Antwort:
Best practice to save application settings in a Windows Forms Application

1

Ich bin ein großer Fan von flachen Dateispeicher ich, zum Beispiel INI-Dateien. Ein Artikel mit Beispielcode zur Verwendung von INI-Dateien mit .NET finden Sie unter here.

+0

Es übernimmt zusätzliche Arbeit - Interop. INI-Dateien werden von .NET nicht unterstützt. –

+1

Ja, da Microsoft versucht, sich von ihnen zu entfernen. Ich bin mir nicht sicher, wie die Informationen gespeichert werden, aber einige Websites meinen, dass es sich um XML handelt. Ich verabscheue XML wirklich. Es ist eine Auszeichnungssprache FFS! – orlp

1

Visual Studio Addin ist spezieller Fall. In diesem Fall können wir nur eine DLL-Datei, die Add-In-Code und einige XML-Dateien mit Add-In-Definition enthalten, verteilen, wenn Sie standard installation Add-In package verwenden möchten. Wenn ich ein solches Problem hatte, versuche ich es mit der Windows-Registrierung zu lösen. Sie können viele Beispiele finden, wie Sie mit der Windows-Registrierung in C# umgehen können.