2010-12-23 9 views
3

Könnte jemand bitte Anwendungs- und Benutzereinstellungen erklären, und ihre Unterschiede zu mir? Ich habe eine C# -Anwendung, die nur EINE Person verwenden wird. Es gibt Voreinstellungen, die der Benutzer innerhalb des Programms festlegen kann, und ich habe diese Einstellungen mit benutzerdefinierten Einstellungen implementiert. Ich hatte den Eindruck, User-Scoped-Einstellungen könnten gelesen werden und geschrieben zur Laufzeit, die sie sind. Aber sie sind nicht persistent. Sobald die Anwendung geschlossen und wieder geöffnet wird, puh, gehen alle Einstellungen des Benutzers..NET-Anwendung/Benutzereinstellungen Probleme

Anwendungseinstellungen scheinen eine bessere Passform zu sein, was ich tue, außer sie zur Laufzeit nicht manipuliert werden können.

So ...

Frage # 1: Sind Benutzer-scoped Einstellungen bestehen bleiben annehmen?

Frage # 2: Ist der Unterschied zwischen Benutzer und Anwendungsbereich die Tatsache, dass die Anwendung zur Laufzeit nicht geändert werden kann, aber Benutzer?

Frage # 3: Wenn ich Einstellungen nicht verwenden kann oder in diesem Fall nicht, was wären alternative Vorschläge zum Speichern von Einstellungen?

+0

Klingt wie eine Frage Microsoft Zertifizierung Test ;-) –

+0

Siehe http://stackoverflow.com/questions/4514929/save-application-preferences-registry-file –

Antwort

2

Es gibt einige gute Informationen here.

  1. Ja. Stellen Sie sicher, dass Sie die Save() Funktion auf ihnen irgendwann aufrufen! Normalerweise mit Settings.Default.Save().
  2. Ja, aber nein. Ich glaube, dass Sie technisch die Anwendungseinstellungen zur Laufzeit ändern und beibehalten können, aber nicht wirklich, da die meisten Bereitstellungsmechanismen dies verhindern, da Ihr Installationsordner nur gelesen werden sollte.
  3. N/A. Verwende die Einstellungen! Du bist auf dem richtigen Weg. Wenn Sie feststellen, dass Sie viele Informationen speichern müssen, müssen Sie sich möglicherweise mehr Datenspeicher anschauen - z. XML, SQL, SQL-CE usw.
+0

Wasn Ich rufe nicht an. Bah! Kann ich speichern, bevor die Anwendung geschlossen wird oder muss ich speichern, wenn ich eine Änderung vornimmt? Eventuell ein onClosing Event speichert die Einstellungen? – CODe

+0

Ich würde OnChange speichern, nur für den Fall, dass Ihre App abstürzt. Im Gegensatz zu VS.NET nicht meine Einstellungen speichern, wenn es Husten Husten stürzt. – mxmissile

+0

CODE - Ja, Sie können Einstellungen mit dem ** Closing ** Event des Formulars speichern. Und vergiss nicht, diese Einstellungen zu speichern! Etwas wie ** Properties.Settings.Default.Save(); ** sollte den Trick machen. –