Ü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. Anwendungseinstellungen enthalten viele Verbesserungen gegenüber dynamischen Eigenschaften, die schreibgeschützt, spät gebunden sind 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. Nachdem sie definiert wurden, werden diese Einstellungen beibehalten und bei der Ausführung automatisch wieder in den Speicher geladen. Eine austauschbare Architektur ermöglicht es, den Persistenzmechanismus zu ändern, aber standardmäßig wird das lokale Dateisystem verwendet.
Anwendungseinstellungen arbeiten, indem Daten als XML in verschiedene Konfigurationsdateien (.config) gespeichert werden, je nachdem, ob die Einstellung anwendungsbezogen oder benutzerbezogen ist. In den meisten Fällen sind die Anwendungsbereichseinstellungen schreibgeschützt; da sie Programminformationen sind, müssen Sie sie in der Regel nicht überschreiben. Im Gegensatz dazu können benutzerspezifische Einstellungen zur Laufzeit sicher gelesen und geschrieben werden, selbst wenn Ihre Anwendung mit eingeschränkten Berechtigungen ausgeführt wird. Weitere Informationen über teilweises Vertrauen finden Sie in der Sicherheit in Windows Forms Übersicht.
Einstellungen werden als XML-Fragmente in Konfigurationsdateien gespeichert. Anwendungsbereichseinstellungen werden durch das <applicationSettings>
-Element dargestellt und werden in der Regel in App-.exe.configplatziert, wobei App- der Name ihrer ausführbaren Hauptdatei ist. Benutzerspezifische Einstellungen 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 nach Bedarf, wenn die Anwendung Einstellungen für diesen Benutzer zum ersten Mal speichert. Sie können auch einen <userSettings>
Block in der App.exe.config definieren, um Standardwerte für benutzerbezogene Einstellungen bereitzustellen.
Benutzerdefinierte Steuerelemente können auch eigene Einstellungen speichern, indem sie die Schnittstelle IPersistComponentSettings implementieren, die die Methode SaveSettings verfügbar macht. Das Windows Forms ToolStrip-Steuerelement 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 LocalFileSettingsProviderspeichert benutzerspezifische Einstellungen im Ordner LocalApplicationData. Wenn dieser Ordner nicht verfügbar ist, wird der ApplicationData Ordner verwendet. Ein anwendungsspezifischer Unterordner wird erstellt, um die benutzerspezifische Einstellungsdatei zu speichern. Der Name dieses Ordners basiert auf drei Attributen der Hauptassembly der App :
- Die CompanyNameder Baugruppe.
- Ein Hashwert, der auf zwei Informationsabschnitten basiert:
- FriendlyNameder Versammlung. Wenn
FriendlyName
nicht verfügbar ist, wird der ProductName verwendet. - Die StrongName der Assembly, falls verfügbar, andernfalls wird der absolute Ordnerpfad verwendet, zur Assembly verwendet wird.
- FriendlyNameder Versammlung. Wenn
- Die AssemblyName.Version Zeichenfolge.
Wenn sich eine der zuvor beschriebenen Assembly-Details ändert, gehen die bisherigen benutzerbezogenen Einstellungen verloren, da ein neuer Unterordnername generiert wird. Wenn beispielsweise eine neue Version der App veröffentlicht wird und der AssemblyName.Version
Wert sich von der vorherigen Version unterscheidet, ä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 auffälligste Beispiel ist die ClientSize-Eigenschaft, da das Binden an diese Eigenschaft zu unvorhersehbarem Verhalten während der 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, empfehlen wir, die integrierte Windows-Sicherheit zu verwenden und nicht darauf zurückzugreifen, indem Sie Kennwörter in die URL hardcoden. Weitere Informationen finden Sie unter Code-Zugriffssicherheit und ADO.NET.
Erste Schritte mit Anwendungseinstellungen
Wenn Sie Visual Studio verwenden, können Sie Einstellungen innerhalb des Windows Forms-Designers mithilfe der (ApplicationSettings)--Eigenschaft im fenster Eigenschaften 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 eine benutzerdefinierte Anwendungseinstellungen-Wrapper-Klasse definieren. Indem wir eine Klasse von ApplicationSettingsBaseableiten, eine Eigenschaft hinzufügen, die jeder Einstellung entspricht, und spezielle Attribute auf diese Eigenschaften anwenden. Ausführliche Informationen darüber, wie Sie Wrapperklassen erstellen, erfahren 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
- ApplicationSettingsBase
- SettingsProvider
- LocalFileSettingsProvider
- IPersistComponentSettings
- So geht's: Anwendungseinstellungen validieren
- Verwalten von Anwendungseinstellungen (.NET)
- Anleitung: Lesen von Einstellungen zur Laufzeit mit C#
- Verwenden von Anwendungseinstellungen und Benutzereinstellungen
- Architektur der Anwendungseinstellungen
- Anwendungseinstellungen für benutzerdefinierte Steuerelemente
.NET Desktop feedback