Verwenden von Visual C# zum Speichern und Abrufen von benutzerdefinierten Informationen aus einer Anwendungskonfigurationsdatei

In diesem Artikel wird erläutert, wie Sie benutzerdefinierte Informationen aus einer Konfigurationsdatei speichern, die Sie später während der Laufzeit von der zugehörigen Anwendung abrufen können. Es ist hilfreich, wenn Sie Daten definieren müssen, die einer Anwendung zugeordnet sind.

Originalversion des Produkts:   Visual C #
Ursprüngliche KB-Nummer:   815786

Anforderungen

In der folgenden Liste sind die empfohlenen Hardware und Software aufgeführt, die Sie benötigen:

  • Microsoft Windows
  • Visual C #

In diesem Artikel wird davon ausgegangen, dass Sie mit den folgenden Themen vertraut sind:

  • Extensible Markup Language (XML)
  • .NET-Konfigurationsdateien

Erstellen einer Konsolenanwendung, die eine Konfigurationsdatei liest

Sie können Anwendungseinstellungen in der Konfigurationsdatei speichern, die der Anwendung zugeordnet ist. Konfigurationsdateien werden im XML-Format gespeichert.

Die System.Configuration Namespaces in der System.Collections.Specialized .NET Framework die erforderlichen Klassen enthalten, um Informationen aus einer .NET-Anwendungskonfigurationsdatei während der Laufzeit abzurufen.

Führen Sie die folgenden Schritte aus, um eine Konsolenanwendung zu erstellen, die den Inhalt einer zugeordneten Konfigurationsdatei während der Laufzeit liest:

  1. Starten Sie Visual Studio .NET oder Visual Studio.

  2. Klicken Sie im Menü Datei auf Neu, und wählen Sie anschließend Projekt.

  3. wählen Sie unter Project Typen Visual C# und dann unter Vorlagen die Option "Konsolenanwendung" aus. Nennen Sie das Projekt "ConConfig". Visual C# erstellt standardmäßig eine Klasse mit dem Namen "Programm".

    Hinweis

    Wählen Sie in Visual Studio .NET unter Project Typen die Option "Visual C#-Projekte" und dann unter "Vorlagen" die Option "Konsolenanwendung" aus. Nennen Sie das Projekt "ConConfig". Visual C# erstellt standardmäßig eine Klasse mit dem Namen "Class1".

  4. Stellen Sie sicher, dass das Projektmappen-Explorer Fenster sichtbar ist. Wenn sie nicht sichtbar ist, drücken Sie die Tastenkombination STRG+ALT+L.

  5. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen, wählen Sie "Hinzufügen" und dann "Neues Element" aus.

  6. Wählen Sie in der Liste "Neues Element hinzufügen " die Option "XML-Datei" aus.

  7. Geben Sie im Textfeld "Name " App.config ein, und wählen Sie dann "Hinzufügen" aus.

  8. Sie können eine Anwendungskonfigurationsdatei verwenden, um benutzerdefinierte Anwendungseinstellungen zu sammeln, die Sie im Schlüssel/Wert-Format speichern. Sie können Elemente in den <appSettings> Abschnitt einer zugeordneten Konfigurationsdatei einschließen<add>. Jedes Schlüssel-Wert-Paar verfügt über ein <add> Element. Ein <add> Element hat das folgende Format:

    <add key="Key0" value="0" />
    

    Fügen Sie der Konfigurationsdatei zwischen den <configuration> Tags einen <appSettings> </configuration> Abschnitt mit <add> Elementen hinzu.

    Die folgende Konfigurationsdatei enthält beispielsweise einen <appSettings> Abschnitt, der drei Schlüssel-Wert-Paare angibt:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <appSettings>
            <add key="Key0" value="0" />
            <add key="Key1" value="1" />
            <add key="Key2" value="2" />
        </appSettings>
    </configuration>
    
  9. Doppelklicken Sie in Projektmappen-Explorer auf "Program.cs", um das Codefenster anzuzeigen. Fügen Sie dem Codemodul die folgenden Anweisungen hinzu.

    Hinweis

    Diese Anweisungen müssen vor allen anderen Anweisungen in der Datei angezeigt werden.

    using System.Configuration;
    using System.Collections.Specialized;
    
  10. Fügen Sie einen Verweis auf System.Configuration.dll hinzu, indem Sie die folgenden Schritte ausführen:

    1. Wählen Sie im Menü Project die Option "Verweis hinzufügen" aus.
    2. Wählen Sie im Dialogfeld " Verweis hinzufügen " die Registerkarte .NET aus.
    3. Suchen Sie den Komponentennamen von , und wählen Sie den Namen der Komponente aus System.Configuration.
    4. Wählen Sie OK aus.
  11. Deklarieren Sie eine Zeichenfolgenvariable im Abschnitt wie folgt, um den Wert aus einem Konfigurationsdateischlüssel im <appSettings> Main Abschnitt der Konfigurationsdatei zu speichern:

    string sAttr;
    
  12. Verwenden Sie die Get Methode AppSettings der Eigenschaft der Klasse, um einen Wert für einen angegebenen Schlüssel aus <appSettings> dem Abschnitt der ConfigurationManager Konfigurationsdatei abzurufen. Die ConfigurationManager Klasse befindet sich im System.Configuration Namespace. Wenn die AppSettings.Get Methode einen Zeichenfolgeneingabeparameter empfängt, der einen Schlüssel enthält, ruft die Anwendung den Wert ab, der dem Schlüssel zugeordnet ist.

    Der folgende Code ruft den Wert für das Key0 Attribut aus der zugeordneten Konfigurationsdatei ab. Der Code platziert diesen Wert dann in der sAttr Zeichenfolgenvariablen. Wenn für diesen Wert kein Schlüssel vorhanden ist, wird nichts in sAttrgespeichert.

    sAttr = ConfigurationManager.AppSettings.Get("Key0");
    
  13. Verwenden Sie Console.WriteLine zum Anzeigen des Werts, den die Anwendung im Konsolenfenster abruft, folgendeRmaßen:

    Console.WriteLine("The value of Key0 is "+sAttr);
    
  14. Sie können einen Verweis auf die AppSettings Eigenschaft verwenden, um alle Schlüssel-Wert-Paare im <appSettings> Abschnitt abzurufen. Wenn Sie die AppSettings Eigenschaft verwenden, gibt die Anwendung alle zugeordneten Schlüssel-Wert-Paare zurück. Diese Paare werden in einem NameValueCollection Typ gespeichert. Enthält NameValueCollection Schlüssel-/Werteinträge für jeden Schlüssel, den die Anwendung abruft. Die NameValueCollection Klasse befindet sich im System.Collections.Specialized Namespace.

    NameValueCollection sAll ;
    sAll = ConfigurationManager.AppSettings;
    
  15. Die AllKeys Eigenschaft der NameValueCollection Verweise auf ein Zeichenfolgenarray, das einen Eintrag für jeden Schlüssel enthält, den die Anwendung abruft. Verwenden Sie eine Foreach-Konstruktion, um das AllKeys Array zu durchlaufen, um auf jeden von der Anwendung abgerufenen Schlüssel zuzugreifen. Jeder Schlüsseleintrag in AllKeys ist ein Zeichenfolgendatentyp.

    Zeigen Sie Console.WriteLine innerhalb der foreach Konstruktion den Schlüssel und den zugehörigen Wert im Konsolenfenster an. Der aktuelle Schlüssel, in dem sich die Anwendung befindet s. Verwenden Sie ihn als Index in der, um den sAllNameValueCollection zugehörigen Wert abzurufen.

     foreach (string s in sAll.AllKeys)
     Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s));
     Console.ReadLine();
    

Vollständige Codeauflistung

using System;
using System.Configuration;
using System.Collections.Specialized;

namespace ConConfig
{
    class Program
    {
        static void Main(string[] args)
        {
            string sAttr;

            // Read a particular key from the config file 
            sAttr = ConfigurationManager.AppSettings.Get("Key0");
            Console.WriteLine("The value of Key0: " + sAttr);

            // Read all the keys from the config file
            NameValueCollection sAll;
            sAll = ConfigurationManager.AppSettings;

            foreach (string s in sAll.AllKeys)
            Console.WriteLine("Key: " + s + " Value: " + sAll.Get(s));
            Console.ReadLine();
        }
    }
}

Hinweis

Dieser Code richtet sich an die .NET Framework 2.0. Wenn Sie die .NET Framework 1.0 oder die .NET Framework 1.1 verwenden, ändern Sie alle Instanzen der ConfigurationManager Klasse in ConfigurationSettings.

Vollständige Konfigurationsdateiauflistung (ConConfig.exe.config)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="Key0" value="0" />
        <add key="Key1" value="1" />
        <add key="Key2" value="2" />
    </appSettings>
</configuration>

Überprüfen, ob es funktioniert

Drücken Sie F5, um den Code auszuführen. Im Konsolenfenster sollten die Schlüssel-Wert-Paare aus dem <appSettings> Abschnitt der zugeordneten Konfigurationsdatei wie folgt angezeigt werden:

The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2

Problembehandlung

  • Die Konfigurationsdatei wird im XML-Format gespeichert. Stellen Sie sicher, dass Sie alle XML-Syntaxregeln befolgen. Denken Sie daran, dass bei XML die Groß-/Kleinschreibung beachtet wird. Wenn der XML-Code nicht gut formatiert ist oder wenn ein Element falsch geschrieben ist, erhalten Sie eine System.Configuration.Configuration Ausnahme.

    Wenn Sie z. B. das Schlüsselattribut eines <add> Elements mit einem K in Großbuchstaben anstelle eines Kleinbuchstabens k hinzufügen oder wenn der <appSettings> Abschnitt als <AppSettings> (mit einem Großbuchstaben A anstelle eines Kleinbuchstabens a) angezeigt wird, wird eine Fehlermeldung angezeigt.

  • Die Konfigurationsdatei muss im selben Ordner wie die zugehörige Anwendung gespeichert werden.

  • Sie müssen die folgende Syntax für den Namen der Konfigurationsdatei verwenden:
    <ApplicationName>.<ApplicationType>.config

    Wo <ApplicationName> ist der Name der Anwendung. <ApplicationType> ist der Anwendungstyp, z .exe. B. . Und .config ist das erforderliche Suffix.

References