Utiliser Visual C# pour stocker et récupérer des informations personnalisées à partir d’un fichier de configuration d’application
Cet article explique comment stocker des informations personnalisées à partir d’un fichier de configuration que vous pouvez récupérer ultérieurement pendant l’exécution par son application associée. Il est utile de définir des données associées à une application.
Note
Le code de cet article cible .NET Framework 2.0 et versions ultérieures. Pour savoir quelles versions spécifiques la ConfigurationManager
classe s’applique, consultez la section S’applique à .
Version du produit d’origine : Visual C#
Numéro de base de connaissances d’origine : 815786
Spécifications
La liste suivante décrit le matériel et les logiciels recommandés dont vous avez besoin :
- Microsoft Windows
- Visual C#
Cet article suppose que vous êtes familiarisé avec les rubriques suivantes :
- XML (Extensible Markup Language)
- Fichiers de configuration .NET
Créer une application console qui lit un fichier de configuration
Vous pouvez stocker les paramètres d’application dans le fichier de configuration associé à l’application. Les fichiers de configuration sont enregistrés au format XML.
System.Collections.Specialized
Les System.Configuration
espaces de noms du .NET Framework incluent les classes nécessaires pour récupérer des informations à partir d’un fichier de configuration d’application .NET pendant l’exécution.
Pour créer une application console qui lit le contenu d’un fichier de configuration associé pendant l’exécution, procédez comme suit :
Démarrez Visual Studio .NET ou Visual Studio.
Dans le menu Fichier , pointez sur Nouveau, puis sélectionnez Projet.
sélectionnez Visual C# sous Types de projets, puis sélectionnez Application console sous Modèles. Nommez le projet ConConfig. Par défaut, Visual C# crée une classe nommée Program.
Note
Dans Visual Studio .NET, sélectionnez Projets Visual C# sous Types de projets, puis sélectionnez Application console sous Modèles. Nommez le projet ConConfig. Par défaut, Visual C# crée une classe nommée Class1.
Vérifiez que la fenêtre Explorateur de solutions est visible. S’il n’est pas visible, appuyez sur la combinaison de touches Ctrl+Alt+L.
Dans Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, sélectionnez Ajouter, puis sélectionnez Nouvel élément.
Dans la liste Ajouter un nouvel élément , sélectionnez Fichier XML.
Dans la zone de texte Nom , tapez App.config, puis sélectionnez Ajouter.
Vous pouvez utiliser un fichier de configuration d’application pour collecter les paramètres d’application personnalisés que vous enregistrez au format clé/valeur. Vous pouvez inclure des
<add>
éléments dans la<appSettings>
section d’un fichier de configuration associé. Chaque paire clé/valeur a un<add>
élément. Un<add>
élément a le format suivant :<add key="Key0" value="0" />
Ajoutez une section avec
<add>
des<appSettings>
éléments au fichier de configuration entre les étiquettes et</configuration>
les<configuration>
étiquettes.Par exemple, le fichier de configuration suivant comprend une
<appSettings>
section qui spécifie trois paires clé/valeur :<?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>
Dans Explorateur de solutions, double-cliquez sur Program.cs pour afficher la fenêtre de code. Ajoutez les instructions suivantes à votre module de code.
Note
Ces instructions doivent apparaître avant toute autre instruction du fichier.
using System.Configuration; using System.Collections.Specialized;
Ajoutez une référence à System.Configuration.dll en procédant comme suit :
- Dans le menu Projet, sélectionnez Ajouter une référence.
- Dans la boîte de dialogue Ajouter une référence , sélectionnez l’onglet .NET .
- Recherchez et sélectionnez le nom du composant de
System.Configuration
. - sélectionnez OK.
Pour contenir la valeur d’une clé de fichier de configuration dans la
<appSettings>
section du fichier de configuration, déclarez une variable de chaîne dans laMain
section comme suit :string sAttr;
Pour récupérer une valeur pour une clé spécifiée à partir de la
<appSettings>
section du fichier de configuration, utilisez laGet
méthode de laAppSettings
propriété de la classe ConfigurationManager . La classeConfigurationManager
se trouve dans l’espace de nomsSystem.Configuration
. Lorsque laAppSettings.Get
méthode reçoit un paramètre d’entrée de chaîne qui contient une clé, l’application récupère la valeur associée à la clé.Le code suivant récupère la valeur de l’attribut
Key0
à partir du fichier de configuration associé. Le code place ensuite cette valeur dans lasAttr
variable de chaîne. Si une clé n’existe pas pour cette valeur, rien n’est stocké danssAttr
.sAttr = ConfigurationManager.AppSettings.Get("Key0");
Pour afficher la valeur que l’application récupère dans la fenêtre console, utilisez
Console.WriteLine
la commande suivante :Console.WriteLine("The value of Key0 is "+sAttr);
Vous pouvez utiliser une référence à la
AppSettings
propriété pour récupérer toutes les paires clé/valeur dans la<appSettings>
section. Lorsque vous utilisez laAppSettings
propriété, l’application retourne toutes les paires clé/valeur associées. Ces paires sont stockées dans unNameValueCollection
type. ContientNameValueCollection
des entrées clé/valeur pour chaque clé récupérée par l’application. La classeNameValueCollection
se trouve dans l’espace de nomsSystem.Collections.Specialized
.NameValueCollection sAll ; sAll = ConfigurationManager.AppSettings;
Propriété
AllKeys
de références d’un tableau deNameValueCollection
chaînes qui a une entrée pour chaque clé récupérée par l’application. Utilisez une construction foreach pour itérer dans leAllKeys
tableau pour accéder à chaque clé récupérée par l’application. Chaque entrée de clé estAllKeys
un type de données de chaîne.À l’intérieur de la
foreach
construction, utilisez cette optionConsole.WriteLine
pour afficher la clé et sa valeur associée dans la fenêtre console. Clé actuelle dans laquelle l’application traite .s
Utilisez-le comme index dans lesAllNameValueCollection
but d’obtenir sa valeur associée.foreach (string s in sAll.AllKeys) Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s)); Console.ReadLine();
Listing du code complet
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();
}
}
}
Liste complète des fichiers de configuration (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>
Vérifiez qu’elle fonctionne
Appuyez sur F5 pour exécuter le code. La fenêtre console doit afficher les paires clé/valeur de la <appSettings>
section du fichier de configuration associé comme suit :
The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2
Résolution des problèmes
Le fichier de configuration est enregistré au format XML. Veillez à suivre toutes les règles de syntaxe XML. N’oubliez pas que XML respecte la casse. Si le code XML n’est pas bien formé ou si un élément est mal orthographié, vous recevez une
System.Configuration.Configuration
exception.Par exemple, si vous ajoutez l’attribut clé d’un
<add>
élément avec un K majuscule au lieu d’un k minuscule, ou si la<appSettings>
section apparaît comme<AppSettings>
(avec un majuscule A au lieu d’un minuscule a), vous recevez un message d’erreur.Le fichier de configuration doit être enregistré dans le même dossier que son application associée.
Vous devez utiliser la syntaxe suivante pour le nom du fichier de configuration :
<ApplicationName>.<ApplicationType.config>Où <ApplicationName> est le nom de l’application. <ApplicationType> est le type d’application, par
.exe
exemple . Il.config
s’agit du suffixe requis.