ConfigurationManager ConfigurationManager ConfigurationManager ConfigurationManager Class

Definition

Stellt Zugriff auf Konfigurationsdateien für Clientanwendungen bereit.Provides access to configuration files for client applications. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

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

Beispiele

Das erste Beispiel zeigt eine einfache Konsolenanwendung, die Anwendungseinstellungen liest, eine neue Einstellung hinzufügt und eine vorhandene Einstellung aktualisiert.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  

Im vorherigen Beispiel wird davon ausgegangen, dass das Projekt über eine APP. config-Datei verfügt, wie unten gezeigt.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>  

Im folgenden Beispiel wird gezeigt, wie eine Verbindungs Zeichenfolge verwendet wird, um Daten aus einer Datenbank zu lesen.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  

Im vorherigen Beispiel wird davon ausgegangen, dass das Projekt über eine APP. config verfügt, wie unten gezeigt.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>  

Hinweise

Mit ConfigurationManager der-Klasse können Sie auf Computer-, Anwendungs-und Benutzer Konfigurationsinformationen zugreifen.The ConfigurationManager class enables you to access machine, application, and user configuration information. Diese Klasse ersetzt die ConfigurationSettings -Klasse, die veraltet ist.This class replaces the ConfigurationSettings class, which is deprecated. Verwenden Sie für Webanwendungen WebConfigurationManager die-Klasse.For web applications, use the WebConfigurationManager class.

Um die ConfigurationManager -Klasse verwenden zu können, muss das System.Configuration Projekt auf die Assembly verweisen.To use the ConfigurationManager class, your project must reference the System.Configuration assembly. Standardmäßig verweisen einige Projektvorlagen, z. b. Konsolenanwendung, nicht auf diese Assembly, sodass Sie Sie manuell referenzieren müssen.By default, some project templates, like Console Application, do not reference this assembly so you must manually reference it.

Hinweis

Der Name und Speicherort der Anwendungs Konfigurationsdatei sind vom Host der Anwendung abhängig.The name and location of the application configuration file depend on the application's host. Weitere Informationen finden Sie unter Konfigurieren von apps mithilfe von Konfigurationsdateien.For more information, see Configuring Apps by using Configuration Files.

Sie können die integrierten System.Configuration Typen verwenden oder von Ihnen ableiten, um Konfigurationsinformationen zu verarbeiten.You can use the built-in System.Configuration types or derive from them to handle configuration information. Mit diesen Typen können Sie direkt mit Konfigurationsinformationen arbeiten und Konfigurationsdateien so erweitern, dass Sie benutzerdefinierte Informationen enthalten.By using these types, you can work directly with configuration information and you can extend configuration files to include custom information.

Die ConfigurationManager -Klasse enthält Member, mit denen Sie die folgenden Aufgaben ausführen können:The ConfigurationManager class includes members that enable you to perform the following tasks:

  • Liest einen Abschnitt aus einer Konfigurationsdatei.Read a section from a configuration file. Um auf Konfigurationsinformationen zuzugreifen, müssen GetSection Sie die-Methode aufrufen.To access configuration information, call the GetSection method. Verwenden Sie für einige Abschnitte appSettings wie connectionStringsund die AppSettings Klassen und ConnectionStrings .For some sections such as appSettings and connectionStrings, use the AppSettings and ConnectionStrings classes. Diese Member führen schreibgeschützte Vorgänge aus, verwenden eine einzelne zwischengespeicherte Instanz der Konfiguration und sind multithreadfähig.These members perform read-only operations, use a single cached instance of the configuration, and are multithread aware.

  • Lesen und Schreiben von Konfigurationsdateien als Ganzes.Read and write configuration files as a whole. Die Anwendung kann Konfigurationseinstellungen auf jeder Ebene, für sich selbst oder für andere Anwendungen oder Computer lokal oder Remote lesen und schreiben.Your application can read and write configuration settings at any level, for itself or for other applications or computers, locally or remotely. Verwenden Sie eine der Methoden, die von ConfigurationManager der-Klasse bereitgestellt werden, um eine Konfigurationsdatei wie SampleApp. exe. config zu öffnen. Diese Methoden geben ein Configuration -Objekt zurück, das wiederum Methoden und Eigenschaften verfügbar macht, die Sie verwenden können, um mit den zugeordneten Konfigurationsdateien zu arbeiten.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. Mit den-Methoden werden Lese-oder Schreibvorgänge durchgeführt und die Konfigurationsdaten jedes Mal erstellt, wenn eine Datei geschrieben wird.The methods perform read or write operations and create the configuration data every time that a file is written.

  • Unterstützung von Konfigurationsaufgaben.Support configuration tasks. Die folgenden Typen werden verwendet, um verschiedene Konfigurationsaufgaben zu unterstützen:The following types are used to support various configuration tasks:

    Zusätzlich zum Arbeiten mit vorhandenen Konfigurationsinformationen können Sie benutzerdefinierte Konfigurationselemente erstellen und bearbeiten, indem Sie die integrierten ConfigurationElementKonfigurationstypen ConfigurationProperty, z. b. die Klassen ConfigurationElementCollection,, und ConfigurationSection erweitern.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. Ein Beispiel für die programmgesteuerte Erweiterung eines integrierten Konfigurations Typs finden ConfigurationSectionSie unter.For an example of how to extend a built-in configuration type programmatically, see ConfigurationSection. Ein Beispiel für die Erweiterung eines integrierten Konfigurations Typs, der das Attribut basierte Modell verwendet, finden ConfigurationElementSie unter.For an example of how to extend a built-in configuration type that uses the attribute-based model, see ConfigurationElement.

Hinweise für Vererber

Die Configuration -Klasse ermöglicht den programmgesteuerten Zugriff zum Bearbeiten von Konfigurationsdateien.The Configuration class enables programmatic access for editing configuration files. Sie verwenden eine der geöffneten Methoden, die von ConfigurationManagerbereitgestellt werden.You use one of the Open methods provided by ConfigurationManager. Diese Methoden geben ein Configuration -Objekt zurück, das wiederum die erforderlichen Methoden und Eigenschaften bereitstellt, um die zugrunde liegenden Konfigurationsdateien zu verarbeiten.These methods return a Configuration object, which in turn provides the required methods and properties to handle the underlying configuration files. Sie können auf diese Dateien zum Lesen oder Schreiben zugreifen.You can access these files for reading or writing.

Um die Konfigurationsdateien zu lesen, GetSection(String) verwenden GetSectionGroup(String) Sie oder, um Konfigurationsinformationen zu lesen.To read the configuration files, use GetSection(String) or GetSectionGroup(String) to read configuration information. Der Benutzer oder der Prozess, der liest, muss über die folgenden Berechtigungen verfügen:The user or process that reads must have the following permissions: -Leseberechtigung für die Konfigurationsdatei auf der aktuellen Konfigurations Hierarchieebene.- Read permission on the configuration file at the current configuration hierarchy level.

: Leseberechtigungen für alle übergeordneten Konfigurationsdateien.- Read permissions on all the parent configuration files.

Wenn Ihre Anwendung schreibgeschützten Zugriff auf Ihre eigene Konfiguration benötigt, empfiehlt es sich, die GetSection(String) -Methode zu verwenden.If your application needs read-only access to its own configuration, we recommend that you use the GetSection(String) method. Diese Methode ermöglicht den Zugriff auf die zwischengespeicherten Konfigurationswerte für die aktuelle Anwendung, die eine bessere Leistung Configuration als die-Klasse aufweist.This method provides access to the cached configuration values for the current application, which has better performance than the Configuration class.

Verwenden Sie eine der Save -Methoden, um in die Konfigurationsdateien zu schreiben.To write to the configuration files, use one of the Save methods. Der Benutzer oder der Prozess, der schreibt, muss über die folgenden Berechtigungen verfügen:The user or process that writes must have the following permissions: -Schreib Berechtigung für die Konfigurationsdatei und das Verzeichnis auf der aktuellen Konfigurations Hierarchieebene.- Write permission on the configuration file and directory at the current configuration hierarchy level.

: Leseberechtigungen für alle Konfigurationsdateien.- Read permissions on all the configuration files.

Eigenschaften

AppSettings AppSettings AppSettings AppSettings

Ruft die AppSettingsSection-Daten für die Standardkonfiguration der aktuellen Anwendung ab.Gets the AppSettingsSection data for the current application's default configuration.

ConnectionStrings ConnectionStrings ConnectionStrings ConnectionStrings

Ruft die ConnectionStringsSection-Daten für die Standardkonfiguration der aktuellen Anwendung ab.Gets the ConnectionStringsSection data for the current application's default configuration.

Methoden

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

Ruft einen angegebenen Konfigurationsabschnitt für die Standardkonfiguration der aktuellen Anwendung ab.Retrieves a specified configuration section for the current application's default configuration.

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

Öffnet die Konfigurationsdatei für die aktuelle Anwendung als Configuration-Objekt.Opens the configuration file for the current application as a Configuration object.

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

Öffnet die angegebene Clientkonfigurationsdatei als Configuration-Objekt.Opens the specified client configuration file as a Configuration object.

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

Öffnet die Computerkonfigurationsdatei auf dem aktuellen Computer als Configuration-Objekt.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)

Öffnet die angegebene Clientkonfigurationsdatei als Configuration-Objekt mithilfe der angegebenen Dateizuordnung und Benutzerebene.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)

Öffnet die angegebene Clientkonfigurationsdatei als Configuration-Objekt mithilfe der angegebenen Dateizuordnung, Benutzerebene und Vorladeoption.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)

Öffnet die Computerkonfigurationsdatei als Configuration-Objekt, das die angegebene Dateizuordnung verwendet.Opens the machine configuration file as a Configuration object that uses the specified file mapping.

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

Aktualisiert den benannten Abschnitt. Dadurch wird er beim nächsten Abrufen erneut vom Datenträger gelesen.Refreshes the named section so the next time that it is retrieved it will be re-read from disk.

Gilt für:

Siehe auch