ConfigurationManager-Klasse
Assembly: System.Configuration (in system.configuration.dll)
Die ConfigurationManager-Klasse ermöglicht es Ihnen, auf Computer-, Anwendungs- und Benutzerkonfigurationsinformationen zuzugreifen. Diese Klasse ersetzt die ConfigurationSettings-Klasse, die veraltet ist.
Clientanwendungen werden auf dem Clientcomputer ausgeführt, während Webanwendungen auf dem Servercomputer ausgeführt werden, mit dem der Client verbunden ist.
Sie können die integrierten System.Configuration-Typen verwenden oder Ableitungen von ihnen durchführen, um Konfigurationsinformationen zu behandeln. Wenn diese Typen verwendet werden, können Sie direkt mit Konfigurationsinformationen arbeiten und Konfigurationsdateien erweitern, um benutzerdefinierte Informationen einzuschließen.
Die ConfigurationManager-Klasse enthält Member, die es Ihnen ermöglichen, die folgenden Aufgaben auszuführen.
-
Lesen Sie einen Abschnitt aus einer Konfigurationsdatei. Rufen Sie die GetSection-Methode auf, um auf Konfigurationsinformationen zuzugreifen. Verwenden Sie für einige Abschnitte, wie appSettings und connectionStrings, die AppSettings-Klasse und die ConnectionStrings-Klasse. Diese Member führen schreibgeschützte Vorgänge mit einer einzigen zwischengespeicherten Instanz der Konfiguration aus und sind multithreadfähig.
-
Lesen und schreiben Sie Konfigurationsdateien im Ganzen. Ihre Anwendung kann Konfigurationseinstellungen auf allen Ebenen lokal oder remote für sich selbst oder andere Anwendungen und Computer lesen und schreiben. Verwenden Sie eine der von der ConfigurationManager-Klasse bereitgestellten Methoden, um eine Konfigurationsdatei, z. B. SampleApp.exe.config, zu öffnen. Diese Methoden geben ein Configuration-Objekt zurück, das wiederum Methoden und Eigenschaften verfügbar macht, die sie für die Arbeit mit den zugeordneten Konfigurationsdateien verwenden können. Die Methoden führen Lese- oder Schreibvorgänge durch und erstellen die Konfigurationsdaten immer neu, wenn eine Datei geschrieben wird.
-
Unterstützen Sie Konfigurationsaufgaben. Die folgenden Typen werden verwendet, um verschiedene Konfigurationsaufgaben zu unterstützen:
Zusätzlich zur Arbeit mit vorhandenen Konfigurationsinformationen können Sie benutzerdefinierte Konfigurationselemente erstellen und damit arbeiten, indem Sie die integrierten Konfigurationstypen wie die Klassen ConfigurationElement, ConfigurationElementCollection, ConfigurationProperty und ConfigurationSection erweitern. Ein Beispiel dafür, wie ein integrierter Konfigurationstyp programmgesteuert erweitert wird, finden Sie unter ConfigurationSection. Ein Beispiel dafür, wie mithilfe des attributbasierten Modells ein integrierter Konfigurationstyp erweitert wird, finden Sie unter ConfigurationElement.
-
Leseberechtigung für die Konfigurationsdatei auf der aktuellen Ebene der Konfigurationshierarchie.
-
Leseberechtigungen für alle übergeordneten Konfigurationsdateien.
-
Schreibberechtigung für die Konfigurationsdatei und das Verzeichnis auf der aktuellen Ebene der Konfigurationshierarchie.
-
Leseberechtigungen für alle Konfigurationsdateien.
Im folgenden Codebeispiel wird veranschaulicht, wie die ConfigurationManager-Klasse verwendet wird, um auf einen benutzerdefinierten Konfigurationsabschnitt zuzugreifen. Wenn der Abschnitt nicht vorhanden ist, wird er erstellt und der Konfigurationsdatei hinzugefügt. Die in diesem Beispiel verwendete benutzerdefinierte Abschnittsklasse wird in dem in der ConfigurationPropertyAttribute-Klasse enthaltenen Beispiel implementiert.
// Create a custom section. static UsingConfigurationManager() { // Get the application configuration file. System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration( ConfigurationUserLevel.None); // If the section does not exist in the configuration // file, create it and save it to the file. if (config.Sections[customSectionName] == null) { custSection = new CustomSection(); config.Sections.Add(customSectionName, custSection); custSection = config.GetSection(customSectionName) as CustomSection; custSection.SectionInformation.ForceSave = true; config.Save(ConfigurationSaveMode.Full); } }
Das Beispiel funktioniert mit den in der folgenden Konfigurationsdatei veranschaulichten Elementen, die beim ersten Ausführen des Beispiels generiert wird.
Hinweis |
|---|
| Sie müssen das Version-Attribut festlegen, um die Versionskontrollanforderungen wiederzugeben. |
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="CustomSection"
type="Samples.Config.CustomSection,
ConfigurationManager,
Version=1.0.0.0,
Culture=neutralPublicKeyToken=null"
allowDefinition="Everywhere"
allowExeDefinition="MachineToApplication"
restartOnExternalChanges="true" />
</configSections>
<connectionStrings>
<add name="ConnStr1"
connectionString="LocalSqlServer: data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=aspnetdb"
providerName="System.Data.SqlClient" />
<add name="ConnStr2"
connectionString="LocalSqlServer: data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=aspnetdb"
providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="AppSetting0"
value="Monday, February 28, 2005 1:27:59 PM" />
<add key="AppSetting1"
value="Monday, February 28, 2005 1:36:40 PM" />
</appSettings>
<CustomSection fileName="default.txt" maxUsers="1000"
maxIdleTime="00:10:00" />
</configuration>
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Hinweis