locked
Mettre à jour/Insérer/supprimer le fichier de configuration au cours de l'exécution RRS feed

  • Discussion générale

  • Comment puis-je mettre à jour/Insérer/supprimer le fichier de configuration au cours de l'exécution ?
    Alex Petrescu - MSFT
    mardi 12 janvier 2010 10:11

Toutes les réponses

  • Insérer des nouvelles valeurs dans le fichier config pendant l'exécution.

     

    En général, nous utilisons ConfigurationManager  pour mettre à jour le contenu du fichier de configuration de l'application.

     

    Voici le fichier App.config original :

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="Setting1" value="1" />
        <add key="Setting2" value="2" />
      </appSettings>
    </configuration>

     

    Le code ci-dessous est utilisé pour ajouter une nouvelle valeur appSetting dans le fichier de configuration.

     

    public Form1()
            {
                InitializeComponent();
            }
            private void ShowConfig()
            {
                // pour lecture on n'a pas besoin d'appeller OpenExeConfiguraton
                foreach (string key in ConfigurationManager.AppSettings)
                {
                    string value = ConfigurationManager.AppSettings[key];
                    MessageBox.Show(String.Format("Key: {0}, Value: {1}", key, value));
                }
            }
            private void UpdateConfig()
            {
                // ouvrir l' App.Config de l'executable
                System.Configuration.Configuration config =
                  ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                // ajouter un element aux Settings.
                config.AppSettings.Settings.Add("Setting3", "3");
                // enregistrer le fichier de configuration.
                config.Save(ConfigurationSaveMode.Modified, true);
                // recharger la section modifie
                ConfigurationManager.RefreshSection("appSettings");
            }
            private void button1_Click(object sender, EventArgs e)
            {
                ShowConfig();
            }
            private void button2_Click(object sender, EventArgs e)
            {
                UpdateConfig();
            }




     

    Modifiez les valeurs existantes dans le fichier de configuration pendant l'exécution.

     

    Parce que la propriété Configuration.AppSettings est en lecture seule, afin de modifier la valeur des paramètres de l’application actuelle, nous devons utiliser la classe XmlDocument  pour mettre à jour directement le fichier de configuration de l'application sous la forme d'un document XML.

     

    Voici le fichier App.config original :

     

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="Setting1" value="1" />
        <add key="Setting2" value="2" />
      </appSettings>
    </configuration>

     

    Voici l'exemple de code pour modifier la valeur des paramètres d'application :

    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
    foreach (XmlElement element in xmlDoc.DocumentElement)
    {
        if (element.Name.Equals("appSettings"))
        {
            foreach (XmlNode node in element.ChildNodes)
            {
                if (node.Attributes[0].Value.Equals("Setting1"))
                {
                    node.Attributes[1].Value = "New Value";
                }
            }
        }
    }
    xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
    ConfigurationManager.RefreshSection("appSettings");

     


    Alex Petrescu - MSFT
    mardi 12 janvier 2010 10:24