ConfigurationManager Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit l’accès aux fichiers de configuration pour les applications clientes. Cette classe ne peut pas être héritée.
public ref class ConfigurationManager abstract sealed
public static class ConfigurationManager
type ConfigurationManager = class
Public Class ConfigurationManager
- Héritage
-
ConfigurationManager
Exemples
Le premier exemple montre une application console simple qui lit les paramètres de l’application, ajoute un nouveau paramètre et met à jour un paramètre existant.
using System;
using System.Configuration;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ReadAllSettings();
ReadSetting("Setting1");
ReadSetting("NotValid");
AddUpdateAppSettings("NewSetting", "May 7, 2014");
AddUpdateAppSettings("Setting1", "May 8, 2014");
ReadAllSettings();
}
static void ReadAllSettings()
{
try
{
var appSettings = ConfigurationManager.AppSettings;
if (appSettings.Count == 0)
{
Console.WriteLine("AppSettings is empty.");
}
else
{
foreach (var key in appSettings.AllKeys)
{
Console.WriteLine("Key: {0} Value: {1}", key, appSettings[key]);
}
}
}
catch (ConfigurationErrorsException)
{
Console.WriteLine("Error reading app settings");
}
}
static void ReadSetting(string key)
{
try
{
var appSettings = ConfigurationManager.AppSettings;
string result = appSettings[key] ?? "Not Found";
Console.WriteLine(result);
}
catch (ConfigurationErrorsException)
{
Console.WriteLine("Error reading app settings");
}
}
static void AddUpdateAppSettings(string key, string value)
{
try
{
var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var settings = configFile.AppSettings.Settings;
if (settings[key] == null)
{
settings.Add(key, value);
}
else
{
settings[key].Value = value;
}
configFile.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
}
catch (ConfigurationErrorsException)
{
Console.WriteLine("Error writing app settings");
}
}
}
}
Imports System.Configuration
Module Module1
Sub Main()
ReadAllSettings()
ReadSetting("Setting1")
ReadSetting("NotValid")
AddUpdateAppSettings("NewSetting", "May 7, 2014")
AddUpdateAppSettings("Setting1", "May 8, 2014")
ReadAllSettings()
End Sub
Sub ReadAllSettings()
Try
Dim appSettings = ConfigurationManager.AppSettings
If appSettings.Count = 0 Then
Console.WriteLine("AppSettings is empty.")
Else
For Each key As String In appSettings.AllKeys
Console.WriteLine("Key: {0} Value: {1}", key, appSettings(key))
Next
End If
Catch e As ConfigurationErrorsException
Console.WriteLine("Error reading app settings")
End Try
End Sub
Sub ReadSetting(key As String)
Try
Dim appSettings = ConfigurationManager.AppSettings
Dim result As String = appSettings(key)
If IsNothing(result) Then
result = "Not found"
End If
Console.WriteLine(result)
Catch e As ConfigurationErrorsException
Console.WriteLine("Error reading app settings")
End Try
End Sub
Sub AddUpdateAppSettings(key As String, value As String)
Try
Dim configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
Dim settings = configFile.AppSettings.Settings
If IsNothing(settings(key)) Then
settings.Add(key, value)
Else
settings(key).Value = value
End If
configFile.Save(ConfigurationSaveMode.Modified)
ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name)
Catch e As ConfigurationErrorsException
Console.WriteLine("Error writing app settings")
End Try
End Sub
End Module
L’exemple suivant montre comment utiliser une chaîne de connexion pour lire des données à partir d’une base de données.
using System;
using System.Configuration;
using System.Data.SqlClient;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ReadProducts();
}
static void ReadProducts()
{
var connectionString = ConfigurationManager.ConnectionStrings["WingtipToys"].ConnectionString;
string queryString = "SELECT Id, ProductName FROM dbo.Products;";
using (var connection = new SqlConnection(connectionString))
{
var command = new SqlCommand(queryString, connection);
connection.Open();
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1]));
}
}
}
}
}
}
Imports System.Configuration
Imports System.Data.SqlClient
Module Module1
Sub Main()
ReadProducts()
End Sub
Sub ReadProducts()
Dim connectionString = ConfigurationManager.ConnectionStrings("WingtipToys").ConnectionString
Dim queryString = "SELECT Id, ProductName FROM dbo.Products;"
Using connection As New SqlConnection(connectionString)
Dim command = New SqlCommand(queryString, connection)
connection.Open()
Using reader As SqlDataReader = command.ExecuteReader()
While reader.Read()
Console.WriteLine(String.Format("{0}, {1}", reader(0), reader(1)))
End While
End Using
End Using
End Sub
End Module
Remarques
La classe ConfigurationManager vous permet d’accéder aux informations de configuration de l’ordinateur, de l’application et de l’utilisateur. Cette classe remplace la classe ConfigurationSettings, qui est déconseillée. Pour les applications web, utilisez la classe WebConfigurationManager.
Pour utiliser la classe ConfigurationManager, votre projet doit référencer l’assembly System.Configuration
. Par défaut, certains modèles de projet, comme l’application console, ne référencent pas cet assembly. Vous devez donc le référencer manuellement.
Note
Le nom et l’emplacement du fichier de configuration de l’application dépendent de l’hôte de l’application. Pour plus d’informations, consultez Configuration des applications à l’aide de Fichiers de configuration.
Vous pouvez utiliser les types System.Configuration intégrés ou les dériver pour gérer les informations de configuration. En utilisant ces types, vous pouvez travailler directement avec les informations de configuration et étendre les fichiers de configuration pour inclure des informations personnalisées.
La classe ConfigurationManager inclut des membres qui vous permettent d’effectuer les tâches suivantes :
Lisez une section à partir d’un fichier de configuration. Pour accéder aux informations de configuration, appelez la méthode GetSection. Pour certaines sections telles que
appSettings
etconnectionStrings
, utilisez les classes AppSettings et ConnectionStrings. Ces membres effectuent des opérations en lecture seule, utilisent une seule instance mise en cache de la configuration et sont conscients de la multithread.Lire et écrire des fichiers de configuration dans son ensemble. Votre application peut lire et écrire des paramètres de configuration à n’importe quel niveau, pour lui-même ou pour d’autres applications ou ordinateurs, localement ou à distance. Utilisez l’une des méthodes fournies par la classe ConfigurationManager pour ouvrir un fichier de configuration tel que SampleApp.exe.config. Ces méthodes retournent un objet Configuration qui expose à son tour des méthodes et des propriétés que vous pouvez utiliser pour travailler avec les fichiers de configuration associés. Les méthodes effectuent des opérations de lecture ou d’écriture et créent les données de configuration chaque fois qu’un fichier est écrit.
Prendre en charge les tâches de configuration. Les types suivants sont utilisés pour prendre en charge différentes tâches de configuration :
Outre l’utilisation des informations de configuration existantes, vous pouvez créer et utiliser des éléments de configuration personnalisés en étendant les types de configuration intégrés tels que les classes ConfigurationElement, ConfigurationElementCollection, ConfigurationPropertyet ConfigurationSection. Pour obtenir un exemple d’extension d’un type de configuration intégré par programmation, consultez ConfigurationSection. Pour obtenir un exemple d’extension d’un type de configuration intégré qui utilise le modèle basé sur des attributs, consultez ConfigurationElement.
Notes pour les héritiers
La classe Configuration permet l’accès par programmation pour la modification des fichiers de configuration. Vous utilisez l’une des méthodes Open
fournies par ConfigurationManager. Ces méthodes retournent un objet Configuration, qui fournit à son tour les méthodes et propriétés requises pour gérer les fichiers de configuration sous-jacents. Vous pouvez accéder à ces fichiers pour la lecture ou l’écriture.
Pour lire les fichiers de configuration, utilisez GetSection(String) ou GetSectionGroup(String). L’utilisateur ou le processus qui lit doit disposer des autorisations suivantes :
l’autorisation Lecture sur le fichier de configuration au niveau de la hiérarchie de configuration actuelle.
Lire les autorisations sur tous les fichiers de configuration parent.
Si votre application a besoin d’un accès en lecture seule à sa propre configuration, nous vous recommandons d’utiliser la méthode GetSection(String). Cette méthode permet d’accéder aux valeurs de configuration mises en cache pour l’application actuelle, ce qui offre de meilleures performances que la classe Configuration.
Pour écrire dans les fichiers de configuration, utilisez l’une des méthodes Save. L’utilisateur ou le processus qui écrit doit disposer des autorisations suivantes :
Autorisation d’écriture sur le fichier de configuration et le répertoire au niveau de la hiérarchie de configuration actuelle.
Lire les autorisations sur tous les fichiers de configuration.
Propriétés
AppSettings |
Obtient les données AppSettingsSection pour la configuration par défaut de l’application actuelle. |
ConnectionStrings |
Obtient les données ConnectionStringsSection pour la configuration par défaut de l’application actuelle. |
Méthodes
GetSection(String) |
Récupère une section de configuration spécifiée pour la configuration par défaut de l’application actuelle. |
OpenExeConfiguration(ConfigurationUserLevel) |
Ouvre le fichier de configuration de l’application actuelle en tant qu’objet Configuration. |
OpenExeConfiguration(String) |
Ouvre le fichier de configuration client spécifié en tant qu’objet Configuration. |
OpenMachineConfiguration() |
Ouvre le fichier de configuration de l’ordinateur sur l’ordinateur actuel en tant qu’objet Configuration. |
OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) |
Ouvre le fichier de configuration client spécifié en tant qu’objet Configuration qui utilise le mappage de fichiers, le niveau utilisateur et l’option de préchargement spécifiés. |
OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) |
Ouvre le fichier de configuration client spécifié en tant qu’objet Configuration qui utilise le mappage de fichiers et le niveau utilisateur spécifiés. |
OpenMappedMachineConfiguration(ConfigurationFileMap) |
Ouvre le fichier de configuration de l’ordinateur en tant qu’objet Configuration qui utilise le mappage de fichiers spécifié. |
RefreshSection(String) |
Actualise la section nommée afin que la prochaine fois qu’elle soit récupérée, elle sera recréée à partir du disque. |
S’applique à
Voir aussi
- Configuration
- WebConfigurationManager
- fichiers de configuration