Verwalten von Anwendungseinstellungen (.NET)

Anwendungseinstellungen ermöglichen ein dynamisches Speichern von Anwendungsinformationen. Mit Anwendungseinstellungen können Sie einen Clientcomputer verwenden, um Informationen zu speichern, die zur Laufzeit nicht im Anwendungscode enthalten sein sollten. Anwendungseinstellungen können Verbindungszeichenfolgen, Benutzereinstellungen und vieles mehr enthalten.

Hinweis

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 keine Leerzeichen enthalten. Der Name wird über die Name-Eigenschaft geändert.

Anwendungseinstellungen können als ein 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 sind String, Integer und Boolean. Sie können Werte jedoch auch als Color, Object oder 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. Daher können Benutzer*innen sie zur Laufzeit nicht ändern.

  • Benutzerspezifische Einstellungen können für Informationen verwendet werden, z. B. die Beibehaltung der letzten Position eines Formulars oder eine Schriftarteinstellung. Benutzer*innen können diese Werte zur Laufzeit ändern.

Sie können den Typ einer Einstellung mit der Eigenschaft Bereich ändern.

Anwendungseinstellungen werden im Projektsystem in zwei XML-Dateien gespeichert:

  • In einer app.config-Datei, die zur Entwurfszeit bei der Erstellung der ersten Anwendungseinstellung erstellt wird

  • In einer user.config-Datei, die zur Laufzeit erstellt wird, wenn der oder die Benutzer*in, der oder die die Anwendung ausführt, den Wert einer Benutzereinstellung ändert

Beachten Sie, dass Änderungen in den Benutzereinstellungen nicht auf den Datenträger geschrieben werden, es sei denn, die Anwendung ruft ausdrücklich eine Methode auf, die diesen Vorgang veranlasst

Erstellen von Anwendungseinstellungen zur Entwurfszeit

Zur Entwurfszeit können Sie Anwendungseinstellungen auf zwei Arten erstellen:

  • Verwenden Sie die Seite Einstellungen des Projekt-Designers.

  • Verwenden Sie das Fenster Eigenschaften für ein Formular oder Steuerelement, um eine Einstellung an eine Eigenschaft zu binden.

Beim Erstellen einer anwendungsspezifischen Einstellung (z. B. einer Datenbankverbindungszeichenfolge oder eines Verweises auf Serverressourcen) speichert Visual Studio diese Einstellung in der app.config-Datei 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 der app.config-Datei mit dem <userSettings>-Tag.

Wichtig

Beim Speichern von Verbindungszeichenfolgen in app.config sollten Sie Vorsichtsmaßnahmen ergreifen, 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 eine*n Benutzer*in), 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.

Verwenden Sie am besten die geschützte Konfiguration, um vertrauliche Informationen in der Konfigurationsdatei zu verschlüsseln. Weitere Informationen finden Sie unter Protecting Connection Information (Schützen von Verbindungsinformationen).

Hinweis

Da es kein Konfigurationsdateimodell für Klassenbibliotheken gibt, gelten Anwendungseinstellungen nicht für Klassenbibliotheksprojekte. Ausgenommen hiervon sind DLL-Projekte in Visual Studio-Tools für Office, die über Konfigurationsdateien verfügen können.

Verwenden von Dateien mit benutzerdefinierten Einstellungen

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 Einstellungen für häufig und weniger häufig verwendete Gruppen in separaten Dateien können Sie beim Laden und Speichern von Einstellungen Zeit sparen.

Beispielsweise können Sie Ihrem 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. Die Datei Settings.settings ist die Standarddatei, die vom Projekt-Designer auf der Registerkarte Einstellungen angezeigt wird. Die Datei Settings.settings befindet sich im Ordner Mein Projekt für Visual Basic-Projekte und im Ordner Eigenschaften für Visual C#-Projekte. Der Projekt-Designer sucht dann nach anderen Einstellungsdateien im Stammordner des Projekts. Deshalb sollten Sie die benutzerdefinierte Einstellungsdatei dort ablegen. Wenn Sie die SETTINGS-Datei einem anderen Projektordner hinzufügen, findet der Projekt-Designer sie nicht.

Zugreifen auf oder Ändern von Anwendungseinstellungen in Visual Basic zur Laufzeit

In Visual Studio-Projekten können Sie mit dem My.Settings-Objekt zur Laufzeit auf Anwendungseinstellungen zugreifen. Wählen Sie auf der Seite Einstellungen die Schaltfläche Code anzeigen aus, um die Datei Settings.vb anzuzeigen. Settings.vb definiert die Settings-Klasse, sodass Sie die folgenden Ereignisse für die Settings-Klasse verarbeiten 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 über das My.Settings-Objekt finden Sie unter Zugreifen auf Anwendungseinstellungen (.NET Framework).

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, wählen Sie die Schaltfläche Synchronisieren aus.

Es ist eine empfohlene bewährte Methode, das My.Settings-Objekt und die SETTINGS-Standarddatei für den Zugriff auf Einstellungen zu verwenden. Diese Vorgehensweise wird empfohlen, weil Sie mithilfe des Einstellungs-Designers den Einstellungen Eigenschaften zuweisen 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 SETTINGS-Datei im Stammordner des Projekts verwenden. Sie müssen die Benutzereinstellungen wie bei einer C#-Anwendung vor dem Beenden der Anwendung speichern. Informationen hierzu finden Sie im folgenden Abschnitt.

Zugreifen auf oder Ändern von Anwendungseinstellungen in C# zur Laufzeit

In Programmiersprachen außer Visual Basic, z. B. in C#, müssen Sie direkt auf die Settings-Klasse zugreifen. Dies wird 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. Im folgenden C#-Beispiel wird einen Aufruf der Save-Methode gezeigt.

Properties.Settings.Default.Save();

Allgemeine Informationen zum Zugriff auf Anwendungseinstellungen über die Settings-Klasse finden Sie unter Übersicht über Anwendungseinstellungen (.NET Framework). Informationen über das Durchlaufen der Einstellungen finden Sie in diesem Forumsbeitrag.