Verwenden von Visual C# zum Speichern und Abrufen von benutzerdefinierten Informationen aus einer Anwendungskonfigurationsdatei
In diesem Artikel wird erläutert, wie Benutzerdefinierte Informationen aus einer Konfigurationsdatei gespeichert werden, die Sie später während der Laufzeit von der zugeordneten Anwendung abrufen können. Es ist hilfreich, wenn Sie Daten definieren müssen, die einer Anwendung zugeordnet sind.
Notiz
Der Code in diesem Artikel richtet sich an .NET Framework 2.0 und höhere Versionen. Informationen dazu, für welche spezifischen Versionen die ConfigurationManager
Klasse gilt, finden Sie im Abschnitt "Gilt für ".
Originalproduktversion: 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.
System.Collections.Specialized
Die System.Configuration
Namespaces in .NET Framework enthalten die erforderlichen Klassen zum Abrufen von Informationen aus einer .NET-Anwendungskonfigurationsdatei während der Laufzeit.
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.
Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.
wählen Sie visual C# unter "Projekttypen" und dann unter "Vorlagen" die Konsolenanwendung aus. Nennen Sie das Projekt ConConfig. Standardmäßig erstellt Visual C# eine Klasse mit dem Namen "Program".
Notiz
Wählen Sie in Visual Studio .NET unter Projekttypen Visual C#-Projekte und dann unter "Vorlagen" die Konsolenanwendung aus. Nennen Sie das Projekt ConConfig. Standardmäßig erstellt Visual C# eine Klasse mit dem Namen "Class1".
Stellen Sie sicher, dass das fenster Projektmappen-Explorer 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 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-/Wertformat speichern. Sie können Elemente im
<appSettings>
Abschnitt einer zugeordneten Konfigurationsdatei einschließen<add>
. Jedes Schlüssel-Wert-Paar weist ein<add>
Element auf. Ein<add>
Element weist das folgende Format auf:<add key="Key0" value="0" />
Fügen Sie der Konfigurationsdatei zwischen den
<configuration>
Tags</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>
Doppelklicken Sie in Projektmappen-Explorer auf Program.cs, um das Codefenster anzuzeigen. Fügen Sie ihrem Codemodul die folgenden Anweisungen hinzu.
Notiz
Diese Anweisungen müssen vor 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ü Projekt die Option Verweis hinzufügen aus.
- Wählen Sie im Dialogfeld "Verweis hinzufügen" die Registerkarte .NET aus.
- Suchen und wählen Sie den Komponentennamen von
System.Configuration
. - klicken Sie auf OK.
Um den Wert aus einem Konfigurationsdateischlüssel im
<appSettings>
Abschnitt der Konfigurationsdatei zu speichern, deklarieren Sie eine Zeichenfolgenvariable imMain
Abschnitt wie folgt:string sAttr;
Verwenden Sie die
Get
Methode derAppSettings
Eigenschaft der ConfigurationManager-Klasse, um einen Wert für einen angegebenen Schlüssel aus dem<appSettings>
Abschnitt der Konfigurationsdatei abzurufen. DieConfigurationManager
-Klasse befindet sich imSystem.Configuration
-Namespace. Wenn dieAppSettings.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 dersAttr
Zeichenfolgenvariable. Wenn für diesen Wert kein Schlüssel vorhanden ist, wird nichts gespeichert.sAttr
sAttr = ConfigurationManager.AppSettings.Get("Key0");
Um den Wert anzuzeigen, den die Anwendung im Konsolenfenster abruft, verwenden Sie
Console.WriteLine
folgendes:Console.WriteLine("The value of Key0 is "+sAttr);
Sie können einen Verweis auf die
AppSettings
Eigenschaft verwenden, um alle Schlüssel-Wert-Paare im<appSettings>
Abschnitt abzurufen. Wenn Sie dieAppSettings
Eigenschaft verwenden, gibt die Anwendung alle zugeordneten Schlüssel-Wert-Paare zurück. Diese Paare werden in einemNameValueCollection
Typ gespeichert. DieNameValueCollection
enthält Schlüssel-/Werteinträge für jeden Schlüssel, den die Anwendung abruft. DieNameValueCollection
-Klasse befindet sich imSystem.Collections.Specialized
-Namespace.NameValueCollection sAll ; sAll = ConfigurationManager.AppSettings;
Die
AllKeys
Eigenschaft einesNameValueCollection
Verweises auf ein Zeichenfolgenarray mit einem Eintrag für jeden Schlüssel, den die Anwendung abruft. Verwenden Sie eine Foreach-Konstruktion, um dasAllKeys
Array zu durchlaufen, um auf jeden von der Anwendung abgerufenen Schlüssel zuzugreifen. Jeder Schlüsseleintrag inAllKeys
ist ein Zeichenfolgendatentyp.Verwenden Sie
Console.WriteLine
in derforeach
Konstruktion, um den Schlüssel und den zugehörigen Wert im Konsolenfenster anzuzeigen. Der aktuelle Schlüssel, in dem sich die Anwendungsprozesse befindets
. Verwenden Sie ihn als Index imsAllNameValueCollection
zugehörigen Wert.foreach (string s in sAll.AllKeys) Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s)); Console.ReadLine();
Vollständige Codeliste
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();
}
}
}
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 sie funktioniert
Drücken Sie F5, um den Code auszuführen. Im Konsolenfenster sollten die Schlüssel-Wert-Paare aus dem <appSettings>
Abschnitt der zugehörigen 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 einhalten. Beachten Sie, dass bei XML die Groß-/Kleinschreibung beachtet wird. Wenn der XML-Code nicht gut gebildet ist oder ein Element falsch geschrieben ist, wird eine
System.Configuration.Configuration
Ausnahme angezeigt.Wenn Sie z. B. das Schlüsselattribute eines
<add>
Elements mit einem Großbuchstaben K anstelle eines Kleinbuchstabens hinzufügen oder wenn der<appSettings>
Abschnitt angezeigt wird<AppSettings>
(mit einem Großbuchstabe A anstelle eines Kleinbuchstabes a), 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 Konfigurationsdateinamen verwenden:
<ApplicationName>.<ApplicationType.config>Dabei <ist ApplicationName> der Name der Anwendung. <ApplicationType> ist der Anwendungstyp, z
.exe
. B. . Und.config
ist das erforderliche Suffix.