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:
Starten Sie Visual Studio .NET oder Visual Studio.
Klicken Sie im Menü Datei auf Neu, und wählen Sie anschließend Projekt.
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".
Stellen Sie sicher, dass das Projektmappen-Explorer Fenster sichtbar ist. Wenn sie nicht sichtbar ist, drücken Sie die Tastenkombination STRG+ALT+L.
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen, wählen Sie "Hinzufügen" und dann "Neues Element" aus.
Wählen Sie in der Liste "Neues Element hinzufügen " die Option "XML-Datei" aus.
Geben Sie im Textfeld "Name " App.config ein, und wählen Sie dann "Hinzufügen" aus.
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>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;Fügen Sie einen Verweis auf System.Configuration.dll hinzu, indem Sie die folgenden Schritte ausführen:
- Wählen Sie im Menü Project die Option "Verweis hinzufügen" aus.
- Wählen Sie im Dialogfeld " Verweis hinzufügen " die Registerkarte .NET aus.
- Suchen Sie den Komponentennamen von , und wählen Sie den Namen der Komponente aus
System.Configuration. - Wählen Sie OK aus.
Deklarieren Sie eine Zeichenfolgenvariable im Abschnitt wie folgt, um den Wert aus einem Konfigurationsdateischlüssel im
<appSettings>MainAbschnitt der Konfigurationsdatei zu speichern:string sAttr;Verwenden Sie die
GetMethodeAppSettingsder Eigenschaft der Klasse, um einen Wert für einen angegebenen Schlüssel aus<appSettings>dem Abschnitt derConfigurationManagerKonfigurationsdatei abzurufen. DieConfigurationManagerKlasse befindet sich imSystem.ConfigurationNamespace. Wenn dieAppSettings.GetMethode 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
Key0Attribut aus der zugeordneten Konfigurationsdatei ab. Der Code platziert diesen Wert dann in dersAttrZeichenfolgenvariablen. Wenn für diesen Wert kein Schlüssel vorhanden ist, wird nichts insAttrgespeichert.sAttr = ConfigurationManager.AppSettings.Get("Key0");Verwenden Sie
Console.WriteLinezum Anzeigen des Werts, den die Anwendung im Konsolenfenster abruft, folgendeRmaßen:Console.WriteLine("The value of Key0 is "+sAttr);Sie können einen Verweis auf die
AppSettingsEigenschaft verwenden, um alle Schlüssel-Wert-Paare im<appSettings>Abschnitt abzurufen. Wenn Sie dieAppSettingsEigenschaft verwenden, gibt die Anwendung alle zugeordneten Schlüssel-Wert-Paare zurück. Diese Paare werden in einemNameValueCollectionTyp gespeichert. EnthältNameValueCollectionSchlüssel-/Werteinträge für jeden Schlüssel, den die Anwendung abruft. DieNameValueCollectionKlasse befindet sich imSystem.Collections.SpecializedNamespace.NameValueCollection sAll ; sAll = ConfigurationManager.AppSettings;Die
AllKeysEigenschaft derNameValueCollectionVerweise auf ein Zeichenfolgenarray, das einen Eintrag für jeden Schlüssel enthält, den die Anwendung abruft. Verwenden Sie eine Foreach-Konstruktion, um dasAllKeysArray zu durchlaufen, um auf jeden von der Anwendung abgerufenen Schlüssel zuzugreifen. Jeder Schlüsseleintrag inAllKeysist ein Zeichenfolgendatentyp.Zeigen Sie
Console.WriteLineinnerhalb derforeachKonstruktion den Schlüssel und den zugehörigen Wert im Konsolenfenster an. Der aktuelle Schlüssel, in dem sich die Anwendung befindets. Verwenden Sie ihn als Index in der, um densAllNameValueCollectionzugehö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.ConfigurationAusnahme.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>.configWo <ApplicationName> ist der Name der Anwendung. <ApplicationType> ist der Anwendungstyp, z
.exe. B. . Und.configist das erforderliche Suffix.