Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

Configuration-Klasse

Stellt eine Konfigurationsdatei dar, die auf einen bestimmten Computer, eine bestimmte Anwendung oder Ressource anwendbar ist. Diese Klasse kann nicht geerbt werden.

Namespace: System.Configuration
Assembly: System.Configuration (in system.configuration.dll)

public sealed class Configuration
public final class Configuration
public final class Configuration
Nicht zutreffend.

Die Configuration-Klasseninstanz stellt die zusammengeführte Ansicht der Konfigurationseinstellungen dar, die auf eine bestimmte physikalische Einheit, z. B. einen Computer, oder auf eine logische Einheit, z. B. eine Anwendung oder eine Website, angewendet werden. Die angegebene logische Einheit kann sich auf dem lokalen Computer oder auf einem Remoteserver befinden.

Wenn für eine angegebene Einheit keine Konfigurationsdatei vorhanden ist, stellt das Configuration-Objekt die standardmäßigen Konfigurationseinstellungen dar, die von der Datei Machine.config definiert sind.

Sie können ein Configuration-Objekt mit einer der Methoden zum Öffnen der Konfiguration abrufen, die von den folgenden Klassen definiert werden:

Um eine Konfigurationsdatei zu generieren, die die geerbten Konfigurationseinstellungen für eine angegebene Einheit darstellt, verwenden Sie eine der Methoden zum Speichern der Konfiguration:

  • Die Save-Methode, um eine neue Konfigurationsdatei zu erstellen.

  • Die SaveAs-Methode, um eine neue Konfigurationsdatei an einem anderen Speicherort zu generieren.

HinweisHinweis:

Um den Zugriff auf Konfigurationseinstellungen auf einem Remotecomputer zu ermöglichen, verwenden Sie das Befehlszeilentool Aspnet_regiis. Weitere Informationen über dieses Tool finden Sie unter ASP.NET IIS-Registrierungstool (Aspnet_regiis.exe). Weitere Informationen über das Erstellen von und Zugreifen auf benutzerdefinierte Konfigurationseinstellungen, bei denen es sich nicht um die in .NET Framework enthaltenen systeminternen Abschnitte handelt, finden Sie unter ConfigurationSection.

Hinweise zur Implementierung: Configuration ist die Klasse, die den programmgesteuerten Zugriff für das Bearbeiten von Konfigurationsdateien ermöglicht. Für Webanwendungen verwenden Sie eine der Methoden zum Öffnen, die von WebConfigurationManager bereitgestellt werden, oder für Clientanwendungen eine der Methoden zum Öffnen, die von ConfigurationManager bereitgestellt werden. Diese Methoden geben ein Configuration-Objekt zurück, das wiederum die zum Behandeln der zugrunde liegenden Konfigurationsdateien erforderlichen Methoden und Eigenschaften bereitstellt. Sie können auf diese Dateien zum Lesen oder Schreiben zugreifen, wie im Folgenden erklärt. Sie verwenden GetSection oder GetSectionGroup, um Konfigurationsinformationen zu lesen. Beachten Sie, dass der lesende Benutzer oder Prozess über die folgenden Berechtigungen verfügen muss:

  • Leseberechtigung für die Konfigurationsdatei auf der aktuellen Ebene der Konfigurationshierarchie.

  • Leseberechtigungen für alle übergeordneten Konfigurationsdateien.

Wenn für die Anwendung der schreibgeschützte Zugriff auf die eigene Konfiguration erforderlich ist, wird empfohlen, im Falle von Webanwendungen die überladenen GetSection-Methoden zu verwenden. Bei Clientanwendungen sollten Sie die GetSection-Methode verwenden. Diese Methoden stellen den Zugriff auf die zwischengespeicherten Konfigurationswerte für die aktuelle Anwendung bereit. Die Leistung ist dabei besser als bei der Configuration-Klasse.
HinweisHinweis:

Wenn Sie eine statische GetSection-Methode verwenden, die einen Pfadparameter annimmt, muss sich der Pfadparameter auf die Anwendung beziehen, in der der Code ausgeführt wird. Andernfalls wird der Parameter ignoriert, und es werden Konfigurationsinformationen für die derzeit ausgeführte Anwendung zurückgegeben.

Verwenden Sie eine der Save-Methoden, um Konfigurationsinformationen zu schreiben. Beachten Sie, dass der schreibende Benutzer oder Prozess über die folgenden Berechtigungen verfügen muss:
  • 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 Configuration-Klasse verwendet wird, um eine Konfigurationsdatei mit einem benutzerdefinierten Abschnitt zu erstellen.

       
// Create a custom section.
static void CreateSection()
{
    try
    {

        CustomSection customSection;

        // Get the current configuration file.
        System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(
                ConfigurationUserLevel.None);

        // Create the section entry  
        // in <configSections> and the 
        // related target section in <configuration>.
        if (config.Sections["CustomSection"] == null)
        {
            customSection = new CustomSection();
            config.Sections.Add("CustomSection", customSection);
            customSection.SectionInformation.ForceSave = true;
            config.Save(ConfigurationSaveMode.Full);

            Console.WriteLine("Section name: {0} created",
                customSection.SectionInformation.Name);

        }
    }
    catch (ConfigurationErrorsException err)
    {
        Console.WriteLine(err.ToString());
    }

}

Im Folgenden finden Sie die Definition des benutzerdefinierten Abschnitts, wie er im vorherigen Beispiel verwendet wurde.


// Define a custom section.
public sealed class CustomSection :
    ConfigurationSection
{

    public enum Permissions
    {
        FullControl = 0,
        Modify = 1,
        ReadExecute = 2,
        Read = 3,
        Write = 4,
        SpecialPermissions = 5
    }

    public CustomSection()
    {

    }

    [ConfigurationProperty("fileName", 
        DefaultValue = "default.txt")]
    [StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
               MinLength = 1, MaxLength = 60)]
    public String FileName
    {
        get
        {
            return (String)this["fileName"];
        }
        set
        {
            this["fileName"] = value;
        }
    }
   
    [ConfigurationProperty("maxIdleTime", DefaultValue="1:30:30")]
    public TimeSpan MaxIdleTime
    {
        get
        {
            return (TimeSpan)this["maxIdleTime"];
        }
        set
        {
            this["maxIdleTime"] = value;
        }
    }
    

    [ConfigurationProperty("permission", 
        DefaultValue = Permissions.Read)]
    public Permissions Permission
    {
        get
        {
            return (Permissions)this["permission"];
        }

        set
        {
            this["permission"] = value;
        }

    }
  
}

Im Folgenden finden Sie einen Konfigurationsauszug, wie er im vorherigen Beispiel verwendet wurde.

<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <configSections>
    <section name="CustomSection" type="Samples.AspNet.CustomSection, 
      Configuration, Version=1.0.0.0, Culture=neutral, 
      PublicKeyToken=null" allowDefinition="Everywhere" 
      allowExeDefinition="MachineToApplication" 
      restartOnExternalChanges="true" />
  </configSections>
    <CustomSection fileName="default.txt" maxIdleTime="01:30:30"
      permission="Read" />

</configuration>

System.Object
  System.Configuration.Configuration

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 wird unter Windows Vista, Microsoft Windows XP SP2 und Windows Server 2003 SP1 unterstützt.

.NET Framework

Unterstützt in: 3.0, 2.0
Anzeigen: