ConfigurationManager Classe

Définition

Fournit un accès aux fichiers de configuration pour les applications clientes.Provides access to configuration files for client applications. Cette classe ne peut pas être héritée.This class cannot be inherited.

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.The first example shows a simple console application that reads application settings, adds a new setting, and updates an existing setting.

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 précédent suppose que votre projet contient un fichier app. config, comme indiqué ci-dessous.The previous example assumes your project has an App.config file as shown below.

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  
    <startup>   
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />  
    </startup>  
  <appSettings>  
    <add key="Setting1" value="May 5, 2014"/>  
    <add key="Setting2" value="May 6, 2014"/>  
  </appSettings>  
</configuration>  

L’exemple suivant montre comment utiliser une chaîne de connexion pour lire des données à partir d’une base de données.The following example shows how to use a connection string to read data from a database.

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  

L’exemple précédent suppose que votre projet possède un fichier app. config, comme indiqué ci-dessous.The previous example assumes your project has an App.config as shown below.

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  
    <startup>   
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />  
    </startup>  
    <connectionStrings>  
      <add name="WingtipToys" connectionString="Data Source=(LocalDB)\v11.0;Initial Catalog=WingtipToys;Integrated Security=True;Pooling=False" />  
    </connectionStrings>  
</configuration>  

Remarques

La ConfigurationManager classe vous permet d’accéder aux informations de configuration de l’ordinateur, de l’application et de l’utilisateur.The ConfigurationManager class enables you to access machine, application, and user configuration information. Cette classe remplace la ConfigurationSettings classe, qui est dépréciée.This class replaces the ConfigurationSettings class, which is deprecated. Pour les applications Web, utilisez WebConfigurationManager la classe.For web applications, use the WebConfigurationManager class.

Pour utiliser la ConfigurationManager classe, votre projet doit référencer System.Configuration l’assembly.To use the ConfigurationManager class, your project must reference the System.Configuration assembly. Par défaut, certains modèles de projet, comme application console, ne font pas référence à cet assembly, de sorte que vous devez le référencer manuellement.By default, some project templates, like Console Application, do not reference this assembly so you must manually reference it.

Notes

Le nom et l’emplacement du fichier de configuration de l’application dépendent de l’hôte de l’application.The name and location of the application configuration file depend on the application's host. Pour plus d’informations, consultez configuration d’applications à l’aide de fichiers de configuration.For more information, see Configuring Apps by using Configuration Files.

Vous pouvez utiliser les System.Configuration types intégrés ou en dériver pour gérer les informations de configuration.You can use the built-in System.Configuration types or derive from them to handle configuration information. À l’aide de ces types, vous pouvez travailler directement avec les informations de configuration et vous pouvez étendre les fichiers de configuration pour inclure des informations personnalisées.By using these types, you can work directly with configuration information and you can extend configuration files to include custom information.

La ConfigurationManager classe comprend des membres qui vous permettent d’effectuer les tâches suivantes :The ConfigurationManager class includes members that enable you to perform the following tasks:

  • Lire une section dans un fichier de configuration.Read a section from a configuration file. Pour accéder aux informations de configuration, GetSection appelez la méthode.To access configuration information, call the GetSection method. Pour certaines sections appSettings comme et connectionStrings, utilisez les AppSettings classes et ConnectionStrings .For some sections such as appSettings and connectionStrings, use the AppSettings and ConnectionStrings classes. Ces membres effectuent des opérations en lecture seule, utilisent une seule instance mise en cache de la configuration et prennent en charge le multithread.These members perform read-only operations, use a single cached instance of the configuration, and are multithread aware.

  • Lire et écrire des fichiers de configuration dans son ensemble.Read and write configuration files as a whole. Votre application peut lire et écrire des paramètres de configuration à n’importe quel niveau, pour elle-même ou pour d’autres applications ou ordinateurs, localement ou à distance.Your application can read and write configuration settings at any level, for itself or for other applications or computers, locally or remotely. Utilisez l’une des méthodes fournies par la ConfigurationManager classe pour ouvrir un fichier de configuration tel que SampleApp. exe. config. Ces méthodes retournent un Configuration objet qui, à son tour, expose des méthodes et des propriétés que vous pouvez utiliser pour travailler avec les fichiers de configuration associés.Use one of the methods provided by the ConfigurationManager class to open a configuration file such as SampleApp.exe.config. These methods return a Configuration object that in turn exposes methods and properties you can use to work with the associated configuration files. 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.The methods perform read or write operations and create the configuration data every time that a file is written.

  • Prendre en charge les tâches de configuration.Support configuration tasks. Les types suivants sont utilisés pour prendre en charge différentes tâches de configuration :The following types are used to support various configuration tasks:

    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 ConfigurationElementque ConfigurationElementCollectionles ConfigurationPropertyclasses, ConfigurationSection , et.In addition to working with existing configuration information, you can create and work with custom configuration elements by extending the built-in configuration types such as the ConfigurationElement, ConfigurationElementCollection, ConfigurationProperty, and ConfigurationSection classes. Pour obtenir un exemple d’extension d’un type de configuration intégré par programme, consultez ConfigurationSection.For an example of how to extend a built-in configuration type programmatically, see 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.For an example of how to extend a built-in configuration type that uses the attribute-based model, see ConfigurationElement.

Notes pour les héritiers

La Configuration classe active l’accès par programme pour la modification des fichiers de configuration.The Configuration class enables programmatic access for editing configuration files. Vous utilisez l’une des méthodes ouvertes fournies par ConfigurationManager.You use one of the Open methods provided by ConfigurationManager. Ces méthodes retournent un Configuration objet, qui fournit à son tour les méthodes et propriétés requises pour gérer les fichiers de configuration sous-jacents.These methods return a Configuration object, which in turn provides the required methods and properties to handle the underlying configuration files. Vous pouvez accéder à ces fichiers pour la lecture ou l’écriture.You can access these files for reading or writing.

Pour lire les fichiers de configuration, GetSection(String) utilisez GetSectionGroup(String) ou pour lire les informations de configuration.To read the configuration files, use GetSection(String) or GetSectionGroup(String) to read configuration information. L’utilisateur ou le processus qui lit doit disposer des autorisations suivantes :The user or process that reads must have the following permissions: -Autorisation de lecture sur le fichier de configuration au niveau de la hiérarchie de configuration actuelle.- Read permission on the configuration file at the current configuration hierarchy level.

-Autorisations de lecture sur tous les fichiers de configuration parents.- Read permissions on all the parent configuration files.

Si votre application a besoin d’un accès en lecture seule à sa propre configuration, nous vous recommandons GetSection(String) d’utiliser la méthode.If your application needs read-only access to its own configuration, we recommend that you use the GetSection(String) method. Cette méthode fournit l’accès aux valeurs de configuration mises en cache pour l’application actuelle, ce qui offre de Configuration meilleures performances que la classe.This method provides access to the cached configuration values for the current application, which has better performance than the Configuration class.

Pour écrire dans les fichiers de configuration, utilisez l’une Save des méthodes.To write to the configuration files, use one of the Save methods. L’utilisateur ou le processus qui écrit doit disposer des autorisations suivantes :The user or process that writes must have the following permissions: -Autorisation d’écriture sur le fichier de configuration et le répertoire au niveau de la hiérarchie de configuration actuelle.- Write permission on the configuration file and directory at the current configuration hierarchy level.

-Autorisations de lecture sur tous les fichiers de configuration.- Read permissions on all the configuration files.

Propriétés

AppSettings

Obtient les données AppSettingsSection pour la configuration par défaut de l’application actuelle.Gets the AppSettingsSection data for the current application's default configuration.

ConnectionStrings

Obtient les données ConnectionStringsSection pour la configuration par défaut de l’application actuelle.Gets the ConnectionStringsSection data for the current application's default configuration.

Méthodes

GetSection(String)

Récupère une section de configuration spécifiée pour la configuration par défaut de l'application actuelle.Retrieves a specified configuration section for the current application's default configuration.

OpenExeConfiguration(ConfigurationUserLevel)

Ouvre le fichier de configuration pour l'application actuelle en tant qu'objet Configuration.Opens the configuration file for the current application as a Configuration object.

OpenExeConfiguration(String)

Ouvre le fichier de configuration client spécifié en tant qu'objet Configuration.Opens the specified client configuration file as a Configuration object.

OpenMachineConfiguration()

Ouvre le fichier de configuration machine sur l'ordinateur actuel en tant qu'objet Configuration.Opens the machine configuration file on the current computer as a Configuration object.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel)

Ouvre le fichier de configuration client spécifié en tant qu'objet Configuration utilisant le mappage de fichiers et le niveau d'utilisateur spécifiés.Opens the specified client configuration file as a Configuration object that uses the specified file mapping and user level.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean)

Ouvre le fichier de configuration client spécifié en tant qu'objet Configuration utilisant le mappage de fichiers, l'option de préchargement et le niveau d'utilisateur spécifiés.Opens the specified client configuration file as a Configuration object that uses the specified file mapping, user level, and preload option.

OpenMappedMachineConfiguration(ConfigurationFileMap)

Ouvre le fichier de configuration machine en tant qu'objet Configuration utilisant le mappage de fichiers spécifié.Opens the machine configuration file as a Configuration object that uses the specified file mapping.

RefreshSection(String)

Actualise la section nommée de sorte qu'elle soit relue à partir du disque lors de sa prochaine récupération.Refreshes the named section so the next time that it is retrieved it will be re-read from disk.

S’applique à

Voir aussi