Verwenden von Einstellungen in C#

Veröffentlicht: 18. Sep 2006

Von Matt Stoecker

Hier finden Sie Informationen zur Verwendung der neuen Funktionen in Visual C# 2005 mit Anwendungs- und Benutzereinstellungen. (5 gedruckte Seiten).

Auf dieser Seite

 Einführung
 Anwendungs- und Benutzereinstellungen
 Erstellen einer neuen Einstellung zur Entwurfszeit
 Verwenden von Einstellungen zur Laufzeit
 Verwenden von alternativen Einstellungssätzen
 Schlussbemerkung

Einführung

Mit .NET Framework 2.0 können Sie Werte erstellen und auf diese zugreifen. Diese Werte werden zwischen Anwendungsausführungssitzungen beibehalten. Diese Werte werden Einstellungen genannt. Einstellungen können Benutzereinstellungen oder wertvolle Informationen darstellen, die von der Anwendung verwendet werden müssen. So könnten Sie beispielsweise Einstellungen erstellen, in denen Benutzereinstellungen für das Farbschema einer Anwendung gespeichert sind. Sie könnten auch die Verbindungszeichenfolge zur Angabe einer Datenbank speichern, die von Ihrer Anwendung verwendet wird. Mit Einstellungen können Sie Informationen beibehalten, die außerhalb des Codes für die Anwendung wichtig sind, und auch Profile erstellen, in denen die Einstellungen einzelner Benutzer gespeichert sind.

Während es in Visual Basic 2005 einen leicht erkennbaren Mechanismus für den Zugriff auf Einstellungen über Mein Namespace gab, gibt es in Visual C# 2005 keinen analogen Namespace. Demzufolge ist der Zugriff auf Einstellungen etwas schwerer. Trotzdem können C#-Benutzer Einstellungen weiter verwenden, indem sie den Namespace Properties (Eigenschaften) aufrufen. Im Verlauf dieses Artikels erfahren Sie, worin der Unterschied zwischen Anwendungs- und Benutzereinstellungen besteht, wie Sie neue Einstellungen zur Entwurfszeit erstellen, wie Sie auf Einstellungen zur Laufzeit zugreifen und wie Sie mehrere Einstellungssätze in Ihre Anwendung integrieren.

 

Anwendungs- und Benutzereinstellungen

Einstellungen haben vier Eigenschaften:

  • Name: Die Einstellungseigenschaft Name ist der Name, der für den Zugriff auf den Wert der Einstellung zur Laufzeit verwendet wird.

  • Typ: Der Type (Typ) der Einstellung ist der .NET Framework-Typ, der von der Einstellung dargestellt wird. Eine Einstellung kann einen beliebigen Typ haben. So wäre beispielsweise eine Einstellung, in der die Benutzerfarbeinstellung gespeichert ist, vom Typ System.Color.

  • Bereich: Die Eigenschaft Scope (Bereich) stellt dar, wie zur Laufzeit auf eine Einstellung zugegriffen werden kann. Für die Eigenschaft Scope (Bereich) gibt es zwei mögliche Werte: Application (Anwendung) und User (Benutzer). Diese Werte werden weiter unten in diesem Abschnitt näher erläutert.

  • Wert: Die Eigenschaft Value (Wert) stellt den Wert dar, der beim Zugriff auf die Einstellung wiedergegeben wird. Der Wert ist von dem Typ, der von der Eigenschaft Type (Typ) dargestellt wird.

Die meisten Eigenschaften bedürfen keiner weiteren Erklärung. Name, Type und Value sind Konzepte, mit denen die meisten Programmierer vertraut sein sollten. Die Eigenschaft Scope ist erklärungsbedürftig. Einstellungen haben zwei mögliche Bereiche: Anwendungsbereich und Benutzerbereich. Einstellungen mit Anwendungsbereich stellen die Einstellungen dar, die unabhängig von den Benutzereinstellungen von der Anwendung verwendet werden, während Einstellungen mit Benutzerbereich für die eigentliche Anwendung normalerweise weniger wichtig und eher mit Einstellungen oder anderen nicht kritischen Werten verknüpft sind.

Der wesentliche Unterschied zwischen Einstellungen mit Anwendungsbereich und Einstellungen mit Benutzerbereich besteht darin, dass Einstellungen mit Benutzerbereich zur Laufzeit gelesen/geschrieben werden und dass sich ihre Werte im Code ändern und speichern lassen. Einstellungen mit Anwendungsbereich sind zur Laufzeit schreibgeschützt. Sie können zwar gelesen, doch nicht geschrieben werden. Einstellungen mit Anwendungsbereich können nur zur Entwurfszeit oder durch manuelles Ändern der Einstellungsdatei geändert werden.

 

Erstellen einer neuen Einstellung zur Entwurfszeit

Mit dem Einstellungs-Designer können Sie eine neue Einstellung zur Entwurfszeit erstellen. Der Einstellungs-Designer hat eine vertraute Oberfläche in Rasterform, über die Sie neue Einstellungen erstellen und Eigenschaften für diese Einstellungen angeben können. Für jede neue Einstellung müssen Sie Name, Type, Scope und Value angeben. Nach dem Erstellen einer Einstellung können Sie auf diese Einstellung mit dem weiter unten beschriebenen Mechanismus im Code zugreifen.

So erstellen Sie eine neue Einstellung zur Entwurfszeit

  1. Erweitern Sie im Projektmappen-Explorer den Knoten Properties (Eigenschaften) Ihres Projekts.

  2. Doppelklicken Sie im Projektmappen-Explorer auf die .settings-Datei, der eine neue Einstellung hinzugefügt werden soll. Standardmäßig lautet der Dateiname „Settings.settings“.

  3. Geben Sie im Einstellungs-Designer den Name, Type, Scope und Value für Ihre Einstellung an. Jede Zeile stellt eine einzelne Einstellung dar. In Abbildung 1 ist ein Beispiel für den Einstellungs-Designers dargestellt.

    Abbildung 1: Der Einstellungs-Designer in Visual Studio 2005
    Abbildung 1: Der Einstellungs-Designer in Visual Studio 2005

Ändern des Werts einer vorhandenen Einstellung zur Entwurfszeit

Mit dem Einstellungs-Designer können Sie auch den Wert einer bereits vorhandenen Einstellung zur Entwurfszeit ändern, wie in den folgenden Schritten beschrieben:

So ändern Sie den Wert einer vorhandenen Einstellung zur Entwurfszeit

  1. Erweitern Sie im Projektmappen-Explorer den Knoten Properties (Eigenschaften) Ihres Projekts.

  2. Doppelklicken Sie im Projektmappen-Explorer auf die .settings-Datei, der eine neue Einstellung hinzugefügt werden soll. Standardmäßig lautet der Dateiname „Settings.settings“.

  3. Suchen Sie im Einstellungs-Designer die zu ändernde Einstellung, und geben Sie den neuen Wert in der Spalte Value ein.

Ändern des Werts einer Einstellung zwischen Anwendungssitzungen

Unter Umständen müssen Sie den Wert einer Einstellung zwischen Anwendungssitzungen ändern, nachdem die Anwendung kompiliert und bereitgestellt wurde. So möchten Sie beispielsweise u. U eine Verbindungszeichenfolge ändern, um auf den richtigen Speicherort der Datenbank zu verweisen. Da Entwurfszeit-Tools nach dem Kompilieren und Bereitstellen der Anwendung nicht zur Verfügung stehen, müssen Sie den Einstellungswert manuell in der Datei ändern.

So ändern Sie den Wert einer Einstellung zwischen Anwendungssitzungen

  1. Öffnen Sie die mit Ihrer Anwendung verknüpfte Datei <AssemblyName>.exe.config in Microsoft Notepad oder einem anderen Text- oder XML-Editor.

  2. Suchen Sie den Eintrag für die Einstellung, die geändert werden soll. Er sollte ähnlich wie im folgenden Beispiel aussehen:

    <setting name="Setting" serializeAs="String">
      <value>This is the setting value</value>
    </setting>
    
  3. Geben Sie einen neuen Wert für Ihre Einstellung ein, und speichern Sie die Datei.

 

Verwenden von Einstellungen zur Laufzeit

Zur Laufzeit stehen der Anwendung Einstellungen über den Code zur Verfügung. Sie haben nur eine Lese-Zugriffsberechtigung für den Wert der Einstellungen mit Anwendungsbereich, während Sie für die Werte von Einstellungen mit Benutzerbereich eine Lese- und Schreibberechtigung haben. In C# stehen Einstellungen über den Namespace Properties (Eigenschaften) zur Verfügung.

Lesen von Einstellungen zur Laufzeit

Mit dem Namespace Properties (Eigenschaften) können Sie Einstellungen mit Anwendungs- und Benutzerbereich zur Laufzeit lesen. Mithilfe des Objekts Properties.Settings.Default zeigt der Namespace Properties (Eigenschaften) alle Standardeinstellungen für das Projekt an. Beim Schreiben von Code, der Einstellungen verwendet, werden alle Einstellungen stark typisiert in IntelliSense angezeigt. Wenn Sie also beispielsweise eine Einstellung vom Typ System.Drawing.Color haben, können Sie diese verwenden, ohne sie zuerst umwandeln zu müssen, wie im folgenden Beispiel dargestellt:

this.BackColor = Properties.Settings.Default.myColor;

Speichern von Benutzereinstellungen zur Laufzeit

Einstellungen mit Anwendungsbereich sind schreibgeschützt und können nur zur Entwurfszeit oder durch Ändern der Datei <AssemblyName>.exe.config zwischen Anwendungssitzungen geändert werden. Einstellungen mit Benutzerbereich können jedoch zur Laufzeit genauso geschrieben werden, als ob Sie einen beliebigen Eigenschaftswert ändern würden. Der neue Wert wird für die Dauer der Anwendungssitzung beibehalten. Durch Aufrufen der Methode Settings.Save können Sie Änderungen an Benutzereinstellungen zwischen Anwendungssitzungen dauerhaft beibehalten. Diese Einstellungen werden in der Datei „User.config“ gespeichert.

So schreiben Sie Benutzereinstellungen zur Laufzeit und behalten diese bei

  1. Rufen Sie die Benutzereinstellung auf, und weisen Sie dieser einen neuen Wert zu, wie im folgenden Beispiel dargestellt:

    Properties.Settings.Default.myColor = Color.AliceBlue;
    
  2. Wenn Änderungen an Benutzereinstellungen zwischen Anwendungssitzungen beibehalten werden sollen, rufen Sie die Methode Save auf, wie im folgenden Code dargestellt:

    Properties.Settings.Default.Save();
    

 

Verwenden von alternativen Einstellungssätzen

Unter Umständen sind mehrere Einstellungssätze in einer Anwendung erforderlich. Wenn Sie beispielsweise eine Anwendung entwickeln, in der sich eine bestimmte Einstellungsgruppe vermutlich häufig ändern wird, könnte es ratsam sein, alle Einstellungen jeweils in einer separaten Datei zu speichern, damit sich die Datei ganz ersetzen lässt und die anderen Einstellungen unverändert beibehalten werden. Mit Visual Studio 2005 können Sie mehrere Einstellungssätze in Ihrem Projekt hinzufügen. Zusätzliche Einstellungssätze lassen sich mithilfe des erstellten Einstellungsobjekts im jeweiligen Knoten aufrufen. Wenn Sie beispielsweise einen Einstellungssatz mit dem Namen SpecialSettings in Ihrem Projekt hinzugefügt haben, würden Sie die darin in Codeform enthaltenen Einstellungen über das Objekt Properties.SpecialSettings aufrufen.

So fügen Sie einen zusätzlichen Einstellungssatz hinzu

  1. Wählen Sie im Menü Projekt die Option Neues Element hinzufügen. Dann wird das Dialogfeld Neues Element hinzufügen geöffnet.

  2. Wählen Sie im Dialogfeld Neues Element hinzufügen die?Option Einstellungsdatei.

  3. Geben Sie der Einstellungsdatei im Feld Name einen Namen, beispielsweise SpecialSettings.settings, und klicken Sie auf Hinzufügen, um die Datei in der Projektmappe hinzuzufügen.

  4. Ziehen Sie die neue Einstellungsdatei im Projektmappen-Explorer in den Ordner Eigenschaften. Dadurch stehen die neuen Einstellungen in Codeform zur Verfügung.

  5. In dieser Datei können Sie Einstellungen nach Belieben wie in jeder anderen Einstellungsdatei hinzufügen bzw. diese Einstellungen verwenden. Auf diese Einstellungsgruppe können Sie über das Objekt Properties.SpecialSettings zugreifen.

 

Schlussbemerkung

In diesem Artikel haben Sie erfahren, wie Sie Einstellungen in Ihren C#-Anwendungen zum Speichern und Verwalten von Einstellungen verwenden können, die sich sowohl auf die Anwendung als auch auf den Benutzer beziehen. Sie haben erfahren, wie Sie Einstellungen zur Entwurfszeit hinzufügen, wie Sie Einstellungen zur Laufzeit lesen und schreiben und wie Sie zusätzliche Einstellungssätze in Ihre Anwendung integrieren. Weitere Informationen finden Sie in den folgenden Ressourcen:

Windows-Formulare im Microsoft .NET Framework Developer Center

WindowsForms.NET

Windows Forms Documentation Updates Blog