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 au moment de l’exécution par son application associée. Il est utile de définir des données associées à une application.

Version d’origine du produit : Visual C#
Numéro de la base de connaissances d’origine : 815786

Configuration requise

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 de l’application dans le fichier de configuration associé à l’application. Les fichiers de configuration sont enregistrés au format XML.

Les System.Configuration espaces de noms et System.Collections.Specialized dans le .NET Framework incluent les classes nécessaires pour récupérer des informations à partir d’un fichier de configuration d’application .NET au moment de l’exécution.

Pour créer une application console qui lit le contenu d’un fichier de configuration associé au moment de l’exécution, procédez comme suit :

  1. Démarrez Visual Studio .NET ou Visual Studio.

  2. Dans le menu Fichier, pointez sur Nouveau, puis sélectionnez Projet.

  3. sélectionnez Visual C# sous Types de projets, puis application console sous Modèles. Nommez le projet ConConfig. Par défaut, Visual C# crée une classe nommée Program.

    Remarque

    Dans Visual Studio .NET, sélectionnez Projets Visual C# sous Types de projets, puis application console sous Modèles. Nommez le projet ConConfig. Par défaut, Visual C# crée une classe nommée Class1.

  4. Assurez-vous que la fenêtre Explorateur de solutions est visible. S’il n’est pas visible, appuyez sur la combinaison de touches Ctrl+Alt+L.

  5. Dans Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, sélectionnez Ajouter, puis sélectionnez Nouvel élément.

  6. Dans la liste Ajouter un nouvel élément , sélectionnez Fichier XML.

  7. Dans la zone de texte Nom , tapez App.config, puis sélectionnez Ajouter.

  8. 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 <appSettings> section avec <add> des éléments au fichier de configuration entre les <configuration> balises et </configuration> .

    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>
    
  9. Dans Explorateur de solutions, double-cliquez sur Program.cs pour afficher la fenêtre de code. Ajoutez les instructions suivantes à votre module de code.

    Remarque

    Ces instructions doivent apparaître avant toutes les autres instructions du fichier.

    using System.Configuration;
    using System.Collections.Specialized;
    
  10. Ajoutez une référence à System.Configuration.dll en procédant comme suit :

    1. Dans le menu Projet , sélectionnez Ajouter une référence.
    2. Dans la boîte de dialogue Ajouter une référence , sélectionnez l’onglet .NET .
    3. Recherchez et sélectionnez le nom du composant de System.Configuration.
    4. Sélectionnez OK.
  11. Pour conserver 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 la Main section comme suit :

    string sAttr;
    
  12. Pour récupérer une valeur pour une clé spécifiée à partir de la <appSettings> section du fichier de configuration, utilisez la Get méthode de la AppSettings propriété de la ConfigurationManager classe . La ConfigurationManager classe se trouve dans l’espace de System.Configuration noms . Lorsque la AppSettings.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 la variable de sAttr chaîne. Si aucune clé n’existe pour cette valeur, rien n’est stocké dans sAttr.

    sAttr = ConfigurationManager.AppSettings.Get("Key0");
    
  13. Pour afficher la valeur que l’application récupère dans la fenêtre console, utilisez Console.WriteLine comme suit :

    Console.WriteLine("The value of Key0 is "+sAttr);
    
  14. 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 la AppSettings propriété , l’application retourne toutes les paires clé/valeur associées. Ces paires sont stockées dans un NameValueCollection type . contient des NameValueCollection entrées clé/valeur pour chaque clé récupérée par l’application. La NameValueCollection classe se trouve dans l’espace de System.Collections.Specialized noms .

    NameValueCollection sAll ;
    sAll = ConfigurationManager.AppSettings;
    
  15. La AllKeys propriété de NameValueCollection fait référence à un tableau de chaînes qui a une entrée pour chaque clé récupérée par l’application. Utilisez une construction foreach pour itérer au sein du AllKeys tableau afin d’accéder à chaque clé récupérée par l’application. Chaque entrée de clé dans AllKeys est un type de données chaîne.

    À l’intérieur de la foreach construction, utilisez Console.WriteLine pour afficher la clé et la valeur associée dans la fenêtre console. La clé actuelle que l’application traite se trouve dans s. Utilisez-le en tant qu’index dans pour sAllNameValueCollection obtenir sa valeur associée.

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

Liste complète du code

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();
        }
    }
}

Remarque

Ce code cible .NET Framework 2.0. Si vous utilisez .NET Framework 1.0 ou .NET Framework 1.1, remplacez toutes les instances de la classe par ConfigurationManagerConfigurationSettings.

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érifier que cela 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ésoudre les problèmes

  • Le fichier de configuration est enregistré au format XML. Veillez à suivre toutes les règles de syntaxe XML. N’oubliez pas que le code XML respecte la casse. Si le code XML n’est pas correctement 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 A majuscule 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>.<.config ApplicationType>

    Où <ApplicationName> est le nom de l’application. <ApplicationType> est le type d’application, tel que .exe. Et .config est le suffixe requis.

References