ConfigurationManager ConfigurationManager ConfigurationManager ConfigurationManager Class

Definicja

Zapewnia dostęp do plików konfiguracji dla aplikacji klienckich.Provides access to configuration files for client applications. Klasa ta nie może być dziedziczona.This class cannot be inherited.

public ref class ConfigurationManager abstract sealed
public static class ConfigurationManager
type ConfigurationManager = class
Public Class ConfigurationManager
Dziedziczenie
ConfigurationManagerConfigurationManagerConfigurationManagerConfigurationManager

Przykłady

Pierwszy przykład pokazuje prostej aplikacji konsolowej odczytuje ustawienia aplikacji, który dodaje nowe ustawienie i aktualizuje istniejące ustawienie.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  

Poprzedni przykład założono, że projekt zawiera plik App.config, jak pokazano poniżej.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>  

Poniższy przykład pokazuje, jak odczytywać dane z bazy danych za pomocą parametrów połączenia.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  

Poprzedni przykład założono, że projekt zawiera pliku App.config, jak pokazano poniżej.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>  

Uwagi

ConfigurationManager Klasy umożliwia dostęp do komputera, aplikacji i informacje o konfiguracji użytkownika.The ConfigurationManager class enables you to access machine, application, and user configuration information. Ta klasa zastępuje ConfigurationSettings klasy, która jest przestarzała.This class replaces the ConfigurationSettings class, which is deprecated. W przypadku aplikacji sieci web, użyj WebConfigurationManager klasy.For web applications, use the WebConfigurationManager class.

Aby użyć ConfigurationManager klasy, Twój profil musi odwoływać System.Configuration zestawu.To use the ConfigurationManager class, your project must reference the System.Configuration assembly. Domyślnie niektóre szablony projektu, takie jak aplikacja Konsolowa nie odwołuj się do tego zestawu, ręcznie musi odwoływać.By default, some project templates, like Console Application, do not reference this assembly so you must manually reference it.

Uwaga

Nazwę i lokalizację pliku konfiguracji aplikacji są zależne od hosta aplikacji.The name and location of the application configuration file depend on the application's host. Aby uzyskać więcej informacji, zobacz NIB: Pliki konfiguracyjne aplikacji.For more information, see NIB: Application Configuration Files.

Można użyć wbudowanego System.Configuration typów lub pochodzić od nich w celu obsługi informacji o konfiguracji.You can use the built-in System.Configuration types or derive from them to handle configuration information. Korzystając z tych typów, można pracować bezpośrednio z informacji o konfiguracji i można rozszerzyć pliki konfiguracji w celu uwzględnienia niestandardowych informacji.By using these types, you can work directly with configuration information and you can extend configuration files to include custom information.

ConfigurationManager Klasa zawiera elementy członkowskie, które umożliwiają wykonywanie następujących zadań:The ConfigurationManager class includes members that enable you to perform the following tasks:

  • Przeczytaj sekcję pliku konfiguracji.Read a section from a configuration file. Aby uzyskać dostęp do informacji o konfiguracji, należy wywołać GetSection metody.To access configuration information, call the GetSection method. Aby uzyskać niektóre sekcje, takie jak appSettings i connectionStrings, użyj AppSettings i ConnectionStrings klasy.For some sections such as appSettings and connectionStrings, use the AppSettings and ConnectionStrings classes. Te elementy Członkowskie wykonania operacji tylko do odczytu, używać jednego wystąpienia pamięci podręcznej konfiguracji i są wielowątkowymi pamiętać.These members perform read-only operations, use a single cached instance of the configuration, and are multithread aware.

  • Odczytu i zapisu plików konfiguracyjnych jako całości.Read and write configuration files as a whole. Aplikacja może odczytywać i zapisać ustawienia konfiguracji na dowolnym poziomie dla siebie lub innych aplikacji lub komputerach, lokalnie lub zdalnie.Your application can read and write configuration settings at any level, for itself or for other applications or computers, locally or remotely. Użyj jednej z metod dostarczonych przez ConfigurationManager klasy można otworzyć pliku konfiguracji, takich jak SampleApp.exe.config. Te metody zwracają Configuration obiektu, który z kolei udostępnia metody i właściwości można użyć do pracy z plikami konfiguracji skojarzone.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. Metody wykonywania odczytu lub operacji zapisu i tworzyć dane konfiguracji, ilekroć dany plik jest zapisywany.The methods perform read or write operations and create the configuration data every time that a file is written.

  • Obsługuje zadania konfiguracji.Support configuration tasks. Następujące typy są używane do obsługi różnych zadań konfiguracji:The following types are used to support various configuration tasks:

    Oprócz pracy z istniejących informacji o konfiguracji, można tworzyć i pracować z elementami konfiguracji niestandardowej, rozszerzając typów wbudowanych konfiguracji, takich jak ConfigurationElement, ConfigurationElementCollection, ConfigurationProperty, i ConfigurationSection klasy.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. Na przykład sposobu rozszerzania typu, wbudowana Konfiguracja programowo zobacz ConfigurationSection.For an example of how to extend a built-in configuration type programmatically, see ConfigurationSection. Na przykład jak rozszerzyć typ wbudowana konfiguracja, który używa modelu opartych na atrybutach zobacz ConfigurationElement.For an example of how to extend a built-in configuration type that uses the attribute-based model, see ConfigurationElement.

Uwagi dotyczące dziedziczenia

Configuration Klasa umożliwia dostęp programowy do edycji plików konfiguracyjnych.The Configuration class enables programmatic access for editing configuration files. Możesz użyć jednej z metod otwartego dostarczonych przez ConfigurationManager.You use one of the Open methods provided by ConfigurationManager. Te metody zwracają Configuration obiektu, który z kolei udostępnia wymaganych metod i właściwości w celu obsługi podstawowych plików konfiguracji.These methods return a Configuration object, which in turn provides the required methods and properties to handle the underlying configuration files. Możesz uzyskać dostęp do tych plików do odczytu lub zapisu.You can access these files for reading or writing.

Do odczytywania plików konfiguracji, użyj GetSection(String) lub GetSectionGroup(String) można odczytać informacji o konfiguracji.To read the configuration files, use GetSection(String) or GetSectionGroup(String) to read configuration information. Użytkownik lub proces, który odczytuje musi mieć następujące uprawnienia:The user or process that reads must have the following permissions: -Uprawnienie do odczytu w pliku konfiguracji na bieżącym poziomie konfiguracji w hierarchii.- Read permission on the configuration file at the current configuration hierarchy level.

— Uprawnienia do odczytu wszystkich nadrzędnego plików konfiguracyjnych.- Read permissions on all the parent configuration files.

Jeśli aplikacja wymaga dostęp tylko do odczytu do jego własnej konfiguracji, firma Microsoft zaleca używanie GetSection(String) metody.If your application needs read-only access to its own configuration, we recommend that you use the GetSection(String) method. Ta metoda zapewnia dostęp do wartości konfiguracji pamięci podręcznej dla bieżącej aplikacji, która ma lepszą wydajność niż Configuration klasy.This method provides access to the cached configuration values for the current application, which has better performance than the Configuration class.

Aby zapisać pliki konfiguracji, użyj jednej z Save metody.To write to the configuration files, use one of the Save methods. Użytkownik lub proces, który zapisuje musi mieć następujące uprawnienia:The user or process that writes must have the following permissions: -Zapisać uprawnienia w pliku konfiguracji i katalogu na bieżącym poziomie konfiguracji w hierarchii.- Write permission on the configuration file and directory at the current configuration hierarchy level.

-Uprawnień do odczytu do wszystkich plików konfiguracji.- Read permissions on all the configuration files.

Właściwości

AppSettings AppSettings AppSettings AppSettings

Pobiera AppSettingsSection danych dla bieżącej aplikacji domyślnej konfiguracji.Gets the AppSettingsSection data for the current application's default configuration.

ConnectionStrings ConnectionStrings ConnectionStrings ConnectionStrings

Pobiera ConnectionStringsSection danych dla bieżącej aplikacji domyślnej konfiguracji.Gets the ConnectionStringsSection data for the current application's default configuration.

Metody

GetSection(String) GetSection(String) GetSection(String) GetSection(String)

Pobiera sekcję konfiguracji określony dla bieżącej aplikacji domyślnej konfiguracji.Retrieves a specified configuration section for the current application's default configuration.

OpenExeConfiguration(ConfigurationUserLevel) OpenExeConfiguration(ConfigurationUserLevel) OpenExeConfiguration(ConfigurationUserLevel) OpenExeConfiguration(ConfigurationUserLevel)

Otwiera plik konfiguracyjny dla bieżącej aplikacji jako Configuration obiektu.Opens the configuration file for the current application as a Configuration object.

OpenExeConfiguration(String) OpenExeConfiguration(String) OpenExeConfiguration(String) OpenExeConfiguration(String)

Otwiera plik konfiguracji określonego klienta jako Configuration obiektu.Opens the specified client configuration file as a Configuration object.

OpenMachineConfiguration() OpenMachineConfiguration() OpenMachineConfiguration() OpenMachineConfiguration()

Otwiera plik konfiguracji na bieżącym komputerze jako Configuration obiektu.Opens the machine configuration file on the current computer as a Configuration object.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel)

Otwiera plik konfiguracji określonego klienta jako Configuration obiekt, który korzysta z poziomu określonego pliku mapowania i użytkownika.Opens the specified client configuration file as a Configuration object that uses the specified file mapping and user level.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean)

Otwiera plik konfiguracji określonego klienta jako Configuration obiektu, który używa określonego pliku mapowania, na poziomie użytkownika i wstępnego ładowania opcji.Opens the specified client configuration file as a Configuration object that uses the specified file mapping, user level, and preload option.

OpenMappedMachineConfiguration(ConfigurationFileMap) OpenMappedMachineConfiguration(ConfigurationFileMap) OpenMappedMachineConfiguration(ConfigurationFileMap) OpenMappedMachineConfiguration(ConfigurationFileMap)

Otwiera plik konfiguracji komputera jako Configuration obiektu, który używa określonego pliku mapowania.Opens the machine configuration file as a Configuration object that uses the specified file mapping.

RefreshSection(String) RefreshSection(String) RefreshSection(String) RefreshSection(String)

Odświeża nazwanej sekcji, dzięki czemu przy następnym uruchomieniu wartość jest pobierana będzie ponownie odczytywana z dysku.Refreshes the named section so the next time that it is retrieved it will be re-read from disk.

Dotyczy

Zobacz też