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

In diesem Artikel wird beschrieben, 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.

Ursprüngliche Produktversion: Visual C#
Ursprüngliche KB-Nummer: 815786

Anforderungen

Die folgende Liste enthält die empfohlene Hardware und Software, 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 und im System.Collections.Specialized .NET Framework die erforderlichen Klassen zum Abrufen von Informationen aus einer .NET-Anwendungskonfigurationsdatei zur Laufzeit enthalten.

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 Projekttypendie Option Visual C# und dann unter Vorlagendie Option Konsolenanwendung aus. Nennen Sie das Projekt ConConfig. Standardmäßig erstellt Visual C# eine Klasse mit dem Namen Program.

    Hinweis

    Wählen Sie in Visual Studio .NET unter Projekttypendie Option Visual C#-Projekte und dann unter Vorlagendie Option Konsolenanwendung aus. Nennen Sie das Projekt ConConfig. Standardmäßig erstellt Visual C# eine Klasse mit dem Namen Class1.

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

  5. Klicken Sie 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ügendie Option XML-Datei aus.

  7. Geben Sie im Textfeld NameApp.configein, 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 <configuration> den Tags und </configuration> einen <appSettings> 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 Projektmappen-Explorer auf Program.cs, um das Codefenster anzuzeigen. Fügen Sie ihrem 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ü Projekt 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 sie aus System.Configuration.
    4. Wählen Sie OK aus.
  11. Um den Wert eines Konfigurationsdateischlüssels im <appSettings> Abschnitt der Konfigurationsdatei zu speichern, deklarieren Sie eine Zeichenfolgenvariable im Main Abschnitt wie folgt:

    string sAttr;
    
  12. Um einen Wert für einen angegebenen Schlüssel aus dem <appSettings> Abschnitt der Konfigurationsdatei abzurufen, verwenden Sie die Get -Methode der AppSettings -Eigenschaft der ConfigurationManager -Klasse. 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 wie folgt, um den Wert anzuzeigen, den die Anwendung im Konsolenfenster abruft:

    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-Wert-Einträ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 von NameValueCollection verweist auf ein Zeichenfolgenarray, das über einen Eintrag für jeden Schlüssel verfügt, den die Anwendung abruft. Verwenden Sie eine foreach-Konstruktion, um das AllKeys Array zu durchlaufen, um auf jeden Schlüssel zuzugreifen, den die Anwendung abruft. Jeder Schlüsseleintrag in AllKeys ist ein Zeichenfolgendatentyp.

    Verwenden Sie Console.WriteLine innerhalb der foreach Konstruktion, um den Schlüssel und den zugehörigen Wert im Konsolenfenster anzuzeigen. Der aktuelle Schlüssel, den die Anwendung verarbeitet, befindet sich in s. Verwenden Sie es als Index im , um den sAllNameValueCollection zugeordneten 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 zielt auf die .NET Framework 2.0 ab. 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

Troubleshooting

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

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

  • 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

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

References