Verwalten von Anwendungseinstellungen
Anwendungseinstellungen ermöglichen ein dynamisches Speichern von Anwendungsinformationen.Mit Einstellungen können Sie Informationen über den Clientcomputer speichern, die nicht im Anwendungscode enthalten sein sollen (beispielsweise eine Verbindungszeichenfolge). Außerdem können Benutzereinstellungen und andere zur Laufzeit benötigte Informationen gespeichert werden.
Durch Anwendungseinstellungen werden die dynamischen Eigenschaften ersetzt, die in früheren Versionen von Visual Studio verwendet wurden.
Jede Anwendungseinstellung muss einen eindeutigen Namen haben.Dieser Name kann aus einer beliebigen Kombination aus Buchstaben, Zahlen und Unterstrichen bestehen. Er darf jedoch nicht mit einer Zahl beginnen, und er darf keine Leerzeichen enthalten.Der Name kann über die Name-Eigenschaft geändert werden.
Anwendungseinstellungen können als beliebiger Datentyp gespeichert werden, der in XML serialisierbar ist oder über einen TypeConverter mit einer Implementierung von ToString/FromString verfügt.Die geläufigsten Typen lauten String, Integer und Boolean. Sie können Werte jedoch auch als Color, Object oder als Verbindungszeichenfolge speichern.
Anwendungseinstellungen enthalten auch einen Wert.Der Wert wird über die Eigenschaft Wert festgelegt und muss mit dem Datentyp der Einstellung übereinstimmen.
Außerdem können Anwendungseinstellungen zur Entwurfszeit an die Eigenschaft eines Formulars oder Steuerelements gebunden werden.
Es gibt zwei Typen von Anwendungseinstellungen, die sich hinsichtlich ihres Gültigkeitsbereichs unterscheiden:
Anwendungsspezifische Einstellungen können für Informationen wie die URL eines Webdiensts oder eine Datenbankverbindungszeichenfolge verwendet werden.Diese Werte werden der Anwendung zugeordnet.Deshalb können Benutzer sie zur Laufzeit nicht ändern.
Benutzerspezifische Einstellungen können für Informationen, z. B. die Beibehaltung der letzten Position eines Formulars oder eine Schriftarteinstellung, verwendet werden.Die Benutzer können diese Werte zur Laufzeit ändern.
Sie können den Typ einer Einstellung mit der Eigenschaft Bereich ändern.
Das Projektsystem speichert die Anwendungseinstellungen in zwei XML-Dateien: in der Datei app.config, die zur Entwurfszeit erstellt wird, wenn Sie die erste Anwendungseinstellung erstellen, sowie in der Datei user.config, die zur Laufzeit erstellt wird, wenn der die Anwendung ausführende Benutzer den Wert einer Benutzereinstellung ändert.Beachten Sie, dass Änderungen in den Benutzereinstellungen nicht auf die Festplatte geschrieben werden, es sei denn, die Anwendung ruft ausdrücklich eine Methode auf, die dies veranlasst.
Erstellen von Anwendungseinstellungen zur Entwurfszeit
Zur Entwurfszeit können Anwendungseinstellungen auf zwei Arten erstellt werden: im Projekt-Designer über die Seite Einstellungen oder für ein Formular oder ein Steuerelement über das Eigenschaftenfenster, in dem Sie eine Einstellung an eine Eigenschaft binden können.
Beim Erstellen einer anwendungsspezifischen Einstellung (z. B. einer Datenbankverbindungszeichenfolge oder eines Verweises auf Serverressourcen) speichert Visual Studio diese Einstellung in app.config mit dem <applicationSettings>-Tag.(Verbindungszeichenfolgen werden unter dem <connectionStrings>-Tag gespeichert.)
Beim Erstellen einer benutzerspezifischen Einstellung (z. B. einer Standardschriftart, Startseite oder Fenstergröße) speichert Visual Studio diese Einstellung in app.config mit dem <userSettings>-Tag.
Sicherheitshinweis |
---|
Beim Speichern von Verbindungszeichenfolgen in app.config sollten Sie Vorsichtsmaßnahmen treffen, damit keine vertraulichen Informationen, etwa Kennwörter oder Serverpfade, in der Verbindungszeichenfolge preisgegeben werden. Wenn Sie Informationen für Verbindungszeichenfolgen aus einer externen Quelle übernehmen (z. B. bei Eingabe einer Benutzer-ID und eines Kennworts durch einen Benutzer), müssen Sie sicherstellen, dass die Werte zum Aufbau der Verbindungszeichenfolge keine zusätzlichen Parameter für Verbindungszeichenfolgen enthalten, die das Verhalten der Verbindung ändern oder ihre Sicherheit gefährden. Verwenden Sie am besten die geschützte Konfiguration, um vertrauliche Informationen in der Konfigurationsdatei zu verschlüsseln.Weitere Informationen finden Sie unter Schützen von Verbindungsinformationen. |
Hinweis |
---|
Da für Klassenbibliotheken das Modell der Konfigurationsdateien nicht verwendet wird, gelten Anwendungseinstellungen nicht für Klassenbibliotheksprojekte.Ausgenommen hiervon sind DLL-Projekte in Visual Studio Tools for Office, die über Konfigurationsdateien verfügen können. |
Verwenden von benutzerdefinierten Einstellungsdateien
Sie können dem Projekt zur einfachen Verwaltung von Einstellungsgruppen benutzerdefinierte Einstellungsdateien hinzufügen.Einstellungen, die in einer Datei enthalten sind, werden als Einheit geladen und gespeichert.Durch das Speichern von häufig und weniger häufig verwendeten Einstellungsgruppen in separaten Dateien können Sie beim Laden und Speichern von Einstellungen Zeit sparen.
Beispielsweise können Sie dem Projekt eine Datei namens SpecialSettings.settings hinzufügen.Die SpecialSettings-Klasse wird zwar im My-Namespace nicht verfügbar gemacht, mit Code anzeigen kann jedoch die benutzerdefinierte Einstellungsdatei, die Partial Class SpecialSettings enthält, gelesen werden.
Zunächst sucht der Einstellungs-Designer nach der vom Projektsystem erstellten Datei Settings.settings. Dies ist die Standarddatei, die im Projekt-Designer auf der Registerkarte Einstellungen angezeigt wird.Settings.settings befindet sich bei Visual Basic-Projekten im Ordner My Project und bei Visual C#-Projekten im Ordner Properties.Der Projekt-Designer sucht dann nach anderen Einstellungsdateien im Stammordner des Projekts.Deshalb sollten Sie die benutzerdefinierte Einstellungsdatei dort ablegen.Wenn Sie die Einstellungsdatei einem anderen Projektordner hinzufügen, findet der Projekt-Designer sie nicht.
Ändern von Anwendungseinstellungen zur Laufzeit nach entsprechendem Zugriff in Visual Basic
In Visual Basic-Projekten können Sie mit dem My.Settings-Objekt zur Laufzeit auf Anwendungseinstellungen zugreifen.Klicken Sie auf der Seite Einstellungen auf die Schaltfläche Code anzeigen, um die Datei Settings.vb anzuzeigen.Settings.vb definiert die Settings-Klasse, sodass Sie die folgenden Ereignisse für die Settings-Klasse handhaben können: SettingChanging, PropertyChanged, SettingsLoaded und SettingsSaving.Beachten Sie, dass die Settings-Klasse in der Datei Settings.vb eine partielle Klasse ist, die nur den im Besitz des Benutzers befindlichen Code anzeigt und nicht die gesamte generierte Klasse.Weitere Informationen über den Zugriff auf Anwendungseinstellungen mithilfe des Objekts My.Settings finden Sie unter Zugreifen auf Anwendungseinstellungen (Visual Basic).
Die Werte aller benutzerspezifischen Einstellungen, die der Benutzer zur Laufzeit ändert (z. B. die Position eines Formulars), werden in der Datei user.config gespeichert.Beachten Sie, dass die Standardwerte weiterhin in app.config gespeichert sind.
Wenn benutzerspezifische Einstellungen zur Laufzeit geändert wurden, z. B. beim Testen der Anwendung, und Sie diese Einstellungen auf die Standardwerte zurücksetzen möchten, klicken Sie auf die Schaltfläche Synchronisieren.
Es wird dringend empfohlen, dass Sie mit dem My.Settings-Objekt und der standardmäßigen SETTINGS-Datei auf Einstellungen zugreifen.Dies ist deshalb wichtig, da mit dem Einstellungs-Designer den Einstellungen Eigenschaften zugewiesen werden können und Benutzereinstellungen vor dem Beenden der Anwendung automatisch gespeichert werden.Die Visual Basic-Anwendung kann jedoch direkt auf Einstellungen zugreifen.In diesem Fall müssen Sie die MySettings-Klasse aufrufen und eine benutzerdefinierte Einstellungsdatei im Stammordner des Projekts verwenden.Außerdem müssen Sie die Benutzereinstellungen wie bei einer C#-Anwendung vor dem Beenden der Anwendung speichern. Informationen hierzu finden Sie im folgenden Abschnitt.
Ändern von Anwendungseinstellungen zur Laufzeit nach entsprechendem Zugriff in Visual C#
In anderen Programmiersprachen als Visual Basic, z. B. Visual C#, müssen Sie direkt auf die Settings-Klasse zugreifen. Dies ist im folgenden Visual C#-Beispiel veranschaulicht.
Properties.Settings.Default.FirstUserSetting = "abc";
Sie müssen die Save-Methode dieser Wrapperklasse explizit aufrufen, damit die Benutzereinstellungen erhalten bleiben.Hierfür verwenden Sie normalerweise den Closing-Ereignishandler des Hauptformulars.Das folgende Visual C#-Beispiel zeigt einen Aufruf der Save-Methode.
Properties.Settings.Default.Save();
Ein Beispiel dazu, wie Sie neue Anwendungseinstellungen erstellen und an Einstellungen in einem Formular binden, finden Sie unter Gewusst wie: Erstellen von Anwendungseinstellungen mithilfe des DesignersAllgemeinere Informationen über das Zugreifen auf Anwendungseinstellungen über die Klasse Settings finden Sie unter Übersicht über Anwendungseinstellungen.Informationen über das Durchlaufen dieser Einstellungen finden Sie in diesem Forumsbeitrag.