IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

fichier de config - appSettings


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 5
    Points
    5
    Par défaut fichier de config - appSettings
    Bonjour,

    Je dois garnir 2 dropdowns sur base d'un fichier paramètre facilement éditable par le commun des mortels. EN VB, j'aurais utilisé un fichier .ini mais je vois que .NET préconise l'utilisation des fichiers App.config en XML.
    J'ai donc créé qqch comme ceci :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <appSettings><add key="dropdown1" value="database1" />     
    <add key="dropdown1" value="database2" />
          <add key="dropdown1" value="database3" />
     
          <add key="dropdown2" value="database4" />
          <add key="dropdown2" value="database5" />
     </appSettings>
    Vous l'aurez compris, je souhaite afficher les 3 permières valeurs dans la 1ère dropdown et les 2 suivantes dans la 2ème dropdown.
    Mais cela ne fonctionne pas comme je l'entends : il ne m'affiche que "database3" dans la 1ere et "database5" dans la 2ème car l'attribut "key" doit être unique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          foreach (string aValue in ConfigurationManager.AppSettings)
          {
            Console.WriteLine("KEY - VALUE : {0} - {1}", aValue, ConfigurationManager.AppSettings[aValue]);
          }
    Avez-vous une idée comment faire pour qu'il me retourne la collection des valeurs à partir d'une clé multiple ?

    merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Dans la section appSettings, tu ne peux mettre que des valeurs de type chaine. Tu pourrais sérialiser ta liste sous forme d'une chaine, mais ce n'est pas très pratique...

    Une meilleure solution serait d'utiliser les paramètres d'application (propriétés du projet, onglet Paramètres). Tu crées un paramètre de type StringCollection, et tu le définis comme paramètre de niveau Application (à moins que l'utilisateur puisse le modifier, dans ce cas tu mets Utilisateur comme portée). En plus, cette méthode a un gros avantage : une classe Settings est générée pour accéder facilement aux paramètres par le code, de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comboBox1.DataSource = Properties.Settings.Default.dropdown1;
    Le app.config généré ressemble à ça :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
            <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
                <section name="WindowsFormsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
            </sectionGroup>
        </configSections>
        <applicationSettings>
            <WindowsFormsApplication1.Properties.Settings>
                <setting name="dropdown1" serializeAs="Xml">
                    <value>
                        <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                            xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                            <string>database1</string>
                            <string>database2</string>
                            <string>database3</string>
                        </ArrayOfString>
                    </value>
                </setting>
            </WindowsFormsApplication1.Properties.Settings>
        </applicationSettings>
    </configuration>

    Si ça ne te convient pas, tu peux toujours créer ton propre fichier de configuration. En général je fais ça en utilisant la sérialisation XML : tu définis une classe avec des propriétés pour chacun de tes paramètres, et tu sérialises cette classe avec XmlSerializer.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Une meilleure solution serait d'utiliser les paramètres d'application (propriétés du projet, onglet Paramètres). Tu crées un paramètre de type StringCollection, et tu le définis comme paramètre de niveau Application (à moins que l'utilisateur puisse le modifier, dans ce cas tu mets Utilisateur comme portée). En plus, cette méthode a un gros avantage : une classe Settings est générée pour accéder facilement aux paramètres par le code, de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comboBox1.DataSource = Properties.Settings.Default.dropdown1;
    J'ai utilisé la deuxième technique, elle marche super.

    merci

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    n'oublie pas le tag

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [jdbc] fichier de config
    Par calimero82 dans le forum JDBC
    Réponses: 14
    Dernier message: 21/06/2005, 13h48
  2. [Erreur]impossible de trouver le fichier de config du moteur
    Par julietteste dans le forum Bases de données
    Réponses: 5
    Dernier message: 10/05/2005, 18h34
  3. [C#] Section appSettings du fichier Web.config
    Par pbo dans le forum ASP.NET
    Réponses: 2
    Dernier message: 01/02/2005, 10h12
  4. [struts] utilisation de plusieurs fichiers de config
    Par Boosters dans le forum Struts 1
    Réponses: 4
    Dernier message: 25/03/2004, 10h04
  5. fichier de config: refuse tcpip_socket=true.
    Par phil25 dans le forum Installation
    Réponses: 1
    Dernier message: 04/01/2004, 15h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo