Si vous avez besoin d'un fonctionnement flexible et de lecture et d'écriture de fichiers de configuration dans .net1.1, ce n'est pas très pratique. Généralement, une classe de gestion de fichiers de configuration est encapsulée dans le projet pour effectuer des opérations de lecture et d'écriture. Dans .net2.0, les classes ConfigurationManager et WebConfigurationManager peuvent très bien être utilisées pour gérer les fichiers de configuration. La classe ConfigurationManager se trouve dans System.Configuration et WebConfigurationManager se trouve dans System.Web.Configuration. Selon MSDN, pour la configuration des applications Web, il est recommandé d'utiliser la classe System.Web.Configuration.WebConfigurationManager au lieu de la classe System.Configuration.ConfigurationManager.
Ci-dessous, je donne un exemple simple pour illustrer comment utiliser WebConfigurationManager pour exploiter les fichiers de configuration :
//Ouvrir le fichier de configuration
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
//Obtenir le nœud appSettings
AppSettingsSection appSection = (AppSettingsSection)config.GetSection("appSettings");
//Ajouter des éléments dans le nœud appSettings
appSection.Settings.Add("addkey1", "valeur de key1");
appSection.Settings.Add("addkey2", "valeur de key2");
config.Save();
Après avoir exécuté le code, vous pouvez voir les modifications dans le fichier de configuration :
Il est également très pratique de modifier et supprimer des nœuds ou des attributs :
//Ouvrez le fichier de configuration
Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
//Obtenir le nœud appSettings
AppSettingsSection appSection = (AppSettingsSection)config.GetSection("appSettings");
//Supprimer des éléments dans le nœud appSettings
appSection.Settings.Remove("addkey1");
//Modifier les éléments dans le nœud appSettings
appSection.Settings["addkey2"].Value = "Modifier la valeur de key2";
config.Save();
Fichier de configuration :
Référence : http://msdn2.microsoft.com/en-us/library/ms228060.aspx