Freigeben über


Übersicht über Anwendungseinstellungen

In diesem Artikel wird erläutert, wie Sie Einstellungsdaten im Namen Ihrer Anwendung und Ihrer Benutzer erstellen und speichern.

Das Feature "Anwendungseinstellungen" von Windows Forms erleichtert das Erstellen, Speichern und Verwalten von benutzerdefinierten Anwendungs- und Benutzereinstellungen auf dem Clientcomputer. Mit Den Windows Forms-Anwendungseinstellungen können Sie nicht nur Anwendungsdaten wie Datenbankverbindungszeichenfolgen, sondern auch benutzerspezifische Daten wie Benutzeranwendungseinstellungen speichern. Mit Visual Studio oder benutzerdefiniertem verwaltetem Code können Sie neue Einstellungen erstellen, sie lesen und auf den Datenträger schreiben, sie an Eigenschaften in Ihren Formularen binden und Einstellungsdaten überprüfen, bevor Sie sie laden und speichern.

Mithilfe von Anwendungseinstellungen können Entwickler den Zustand in ihrer Anwendung mit sehr wenig benutzerdefiniertem Code speichern und ist ein Ersatz für dynamische Eigenschaften in früheren Versionen von .NET Framework. Die Anwendungseinstellungen beinhalten viele Verbesserungen gegenüber dynamischen Eigenschaften, die schreibgeschützt sind, verzögert gebunden werden und mehr benutzerdefinierte Programmierung erfordern. Die dynamischen Eigenschaftsklassen wurden in .NET Framework 2.0 beibehalten, aber sie sind nur Shellklassen, die die Anwendungseinstellungsklassen dünn umschließen.

Was sind Anwendungseinstellungen?

Ihre Windows Forms-Anwendungen erfordern häufig Daten, die für die Ausführung der Anwendung von entscheidender Bedeutung sind, die Sie jedoch nicht direkt in den Code der Anwendung aufnehmen möchten. Wenn Ihre Anwendung einen Webdienst oder einen Datenbankserver verwendet, sollten Sie diese Informationen in einer separaten Datei speichern, damit Sie sie in Zukunft ändern können, ohne dass sie erneut kompiliert werden muss. Ebenso müssen Ihre Anwendungen möglicherweise Daten speichern, die für den aktuellen Benutzer spezifisch sind. Die meisten Anwendungen verfügen beispielsweise über Benutzereinstellungen, die das Aussehen und Verhalten der Anwendung anpassen.

Anwendungseinstellungen erfüllen beide Anforderungen, indem sie eine einfache Möglichkeit zum Speichern von anwendungsbezogenen und benutzerbezogenen Einstellungen auf dem Clientcomputer bieten. Mit Visual Studio oder einem Code-Editor definieren Sie eine Einstellung für eine bestimmte Eigenschaft, indem Sie den Namen, den Datentyp und den Bereich (Anwendung oder Benutzer) angeben. Sie können verwandte Einstellungen sogar in benannte Gruppen platzieren, um die Verwendung und Lesbarkeit zu erleichtern. Nach der Definition werden diese Einstellungen beibehalten und zur Laufzeit automatisch in den Arbeitsspeicher zurückgelesen. Eine austauschbare Architektur ermöglicht es, den Persistenzmechanismus zu ändern, aber standardmäßig wird das lokale Dateisystem verwendet.

Anwendungseinstellungen funktionieren, indem Daten als XML in verschiedene Konfigurationsdateien (.config) geschrieben werden, je nachdem, ob die Einstellung anwendungsbezogen oder benutzerbezogen ist. In den meisten Fällen sind anwendungsspezifische Einstellungen schreibgeschützt; da es sich um Programminformationen handelt, müssen Sie sie in der Regel nicht überschreiben. Im Gegensatz dazu können benutzerbezogene Einstellungen zur Laufzeit sicher gelesen und geschrieben werden, selbst wenn Ihre Anwendung unter einem eingeschränkten Vertrauenskontext ausgeführt wird. Weitere Informationen zur teilweisen Vertrauensstellung finden Sie unter "Sicherheit in Windows Forms Overview".

Einstellungen werden als XML-Fragmente in Konfigurationsdateien gespeichert. Anwendungsbereichseinstellungen werden durch das <applicationSettings> Element dargestellt und in der Regel in app.exe.configplatziert, wobei app der Name Ihrer Hauptprogrammdatei ist. Benutzerbereichseinstellungen werden durch das <userSettings> Element dargestellt und in user.configplatziert. Sie müssen die App.exe.config Datei mit Ihrer Anwendung bereitstellen; Die Einstellungsarchitektur erstellt die user.config Datei bei Bedarf, wenn die Anwendung einstellungen für diesen Benutzer zum ersten Mal speichert. Sie können auch einen <userSettings> Block innerhalb der App.exe.config definieren, um Standardwerte für benutzerdefinierte Einstellungen bereitzustellen.

Benutzerdefinierte Steuerelemente können auch eigene Einstellungen speichern, indem sie die IPersistComponentSettings Schnittstelle implementieren, die die SaveSettings Methode verfügbar macht. Das Windows Forms-Steuerelement ToolStrip implementiert diese Schnittstelle, um die Position von Symbolleisten und Symbolleistenelementen zwischen Anwendungssitzungen zu speichern. Weitere Informationen zu benutzerdefinierten Steuerelementen und Anwendungseinstellungen finden Sie unter Anwendungseinstellungen für benutzerdefinierte Steuerelemente.

Wo werden benutzerbezogene Einstellungen gespeichert

Der Standardanbieter LocalFileSettingsProvider speichert benutzerspezifische Einstellungen im Ordner LocalApplicationData. Wenn dieser Ordner nicht verfügbar ist, wird der ApplicationData Ordner verwendet. Ein appspezifischer Unterordner wird erstellt, um die Einstellungsdatei mit Benutzerbereich zu speichern. Der Name dieses Ordners basiert auf drei Attributen der Hauptassembly der App:

  • Die Versammlung CompanyName.
  • Ein Hashwert, der auf zwei Informationsabschnitten basiert:
    • Die Versammlung FriendlyName. Falls FriendlyName nicht verfügbar, wird dies ProductName verwendet.
    • Wenn die Assembly StrongName verfügbar ist, wird andernfalls der absolute Ordnerpfad zur Assembly verwendet.
  • Die AssemblyName.Version Zeichenfolge.

Wenn sich eines der vorgängigen Assembly-Details ändert, gehen die zuvor benutzerbereichsspezifischen Einstellungen verloren, da ein neuer Name für den Unterordner generiert wird. Wenn beispielsweise eine neue Version der App veröffentlicht wird und der AssemblyName.Version Wert von der vorherigen Version abweicht, ändert sich der Name des Unterordners, der zum Speichern der Einstellungen mit Benutzerbereich verwendet wird. Wenn Benutzereinstellungen zwischen App-Versionen beibehalten werden müssen, erstellen Sie einen benutzerdefinierten Einstellungsanbieter. Weitere Informationen finden Sie unter "Benutzerdefinierte Einstellungsanbieter".

Einschränkungen der Anwendungseinstellungen

Anwendungseinstellungen können nicht in einer nicht verwalteten Anwendung verwendet werden, die .NET Framework hostt. Einstellungen funktionieren nicht in Umgebungen wie Visual Studio-Add-Ins, C++ für Microsoft Office, Steuern des Hostings in Internet Explorer oder Microsoft Outlook-Add-Ins und -Projekten.

Sie können derzeit keine Bindung an einige Eigenschaften in Windows Forms herstellen. Das wichtigste Beispiel ist die Eigenschaft ClientSize, da die Bindung an diese Eigenschaft zu unvorhersehbarem Verhalten zur Laufzeit führen würde. Normalerweise können Sie diese Probleme umgehen, indem Sie diese Einstellungen programmgesteuert speichern und laden.

Anwendungseinstellungen verfügen nicht über eine integrierte Einrichtung zum automatischen Verschlüsseln von Informationen. Sie sollten niemals sicherheitsbezogene Informationen, z. B. Datenbank-Kennwörter, im Klartext speichern. Wenn Sie solche vertraulichen Informationen speichern möchten, sind Sie als Anwendungsentwickler dafür verantwortlich, dass sie sicher ist. Wenn Sie Verbindungszeichenfolgen speichern möchten, empfiehlt es sich, die integrierte Windows-Sicherheit zu verwenden und nicht auf hartcodierende Kennwörter in die URL zu zurückgreifen. Weitere Informationen finden Sie unter Code Access Security und ADO.NET.

Erste Schritte mit Anwendungseinstellungen

Wenn Sie Visual Studio verwenden, können Sie Einstellungen innerhalb des Windows Forms-Designers mithilfe der Eigenschaft (ApplicationSettings) im Eigenschaftenfenster definieren. Wenn Sie Einstellungen auf diese Weise definieren, erstellt Visual Studio automatisch eine benutzerdefinierte verwaltete Wrapperklasse, die jede Einstellung einer Klasseneigenschaft zuordnet. Visual Studio übernimmt außerdem die Bindung der Einstellung an eine Eigenschaft in einem Formular oder Steuerelement, sodass die Einstellungen des Steuerelements automatisch wiederhergestellt werden, wenn das Formular angezeigt wird, und automatisch gespeichert wird, wenn das Formular geschlossen wird.

Wenn Sie eine detailliertere Kontrolle über Ihre Einstellungen wünschen, können Sie ihre eigenen benutzerdefinierten Anwendungseinstellungen Wrapperklasse definieren. Indem man eine Klasse von ApplicationSettingsBase ableitet, eine Eigenschaft für jede Einstellung hinzufügt und spezielle Attribute auf diese Eigenschaften anwendet, wird dies umgesetzt. Ausführliche Informationen zum Erstellen von Wrapperklassen finden Sie unter Anwendungseinstellungsarchitektur.

Sie können die Binding Klasse auch verwenden, um Einstellungen programmgesteuert an Eigenschaften für Formulare und Steuerelemente zu binden.

Siehe auch