ConfigurationSectionGroup Klasse

Definition

Stellt eine Gruppe verwandter Abschnitte innerhalb einer Konfigurationsdatei dar.

public ref class ConfigurationSectionGroup
public class ConfigurationSectionGroup
type ConfigurationSectionGroup = class
Public Class ConfigurationSectionGroup
Vererbung
ConfigurationSectionGroup
Abgeleitet

Beispiele

Das folgende Beispiel zeigt, wie Sie die Klasse zum Abrufen von ConfigurationSectionGroup Konfigurationseinstellungen verwenden. Das Beispiel ist eine Konsolenanwendung, die Konfigurationseinstellungen liest und Informationen zu jeder Konfigurationsabschnittsgruppe und den Darin enthaltenen Abschnitten in die Konsole schreibt.

Die Main Methode lädt die Konfigurationseinstellungen in ein Configuration Objekt, ruft die SectionGroups Auflistung aus dem Configuration Objekt ab und ruft dann die ShowSectionGroupCollectionInfo Methode auf, um die Abschnittseigenschaftswerte anzuzeigen.

Die ShowSectionGroupCollectionInfo Methode durchläuft die Abschnittsgruppen und ruft die ShowSectionGroupInfo Methode für jede auf.

Die ShowSectionGroupInfo Methode zeigt den Namen der Abschnittsgruppe, einige Eigenschaftswerte und die Namen der darin enthaltenen Abschnitte an. Wenn die Abschnittsgruppe Abschnittsgruppen enthält, ruft diese Methode rekursiv auf ShowSectionGroupCollectionInfo , um diese Abschnittsgruppen anzuzeigen.

Das indentLevel Feld wird verwendet, um der linken Seite der angezeigten Zeilen Leerzeichen hinzuzufügen, um logische Gruppierungen anzuzeigen. Alle Zeilen sind auf 79 Zeichen text beschränkt, um zeilenumbruchen zu vermeiden, was es schwieriger macht, die logischen Gruppierungen zu unterscheiden.

using System;
using System.Collections;
using System.Configuration;

namespace Samples.AspNet
{
    class UsingConfigurationSectionGroup
    {
        static int indentLevel = 0;

        static void Main(string[] args)
        {

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

            // Get the collection of the section groups.
            ConfigurationSectionGroupCollection sectionGroups =
                config.SectionGroups;

            // Display the section groups.
            ShowSectionGroupCollectionInfo(sectionGroups);
        }

        static void ShowSectionGroupCollectionInfo(
            ConfigurationSectionGroupCollection sectionGroups)
        {
            foreach (ConfigurationSectionGroup sectionGroup in sectionGroups)
            {
                ShowSectionGroupInfo(sectionGroup);
            }
        }

        static void ShowSectionGroupInfo(
            ConfigurationSectionGroup sectionGroup)
        {
            // Get the section group name.
            indent("Section Group Name: " + sectionGroup.Name);

            // Get the fully qualified group name.
            indent("Section Group Name: " + sectionGroup.SectionGroupName);

            indentLevel++;

            indent("Type: " + sectionGroup.Type);
            indent("Is Group Required?: " + 
                sectionGroup.IsDeclarationRequired);
            indent("Is Group Declared?: " + sectionGroup.IsDeclared);
            indent("Contained Sections:");

            indentLevel++;
            foreach (ConfigurationSection section 
                in sectionGroup.Sections)
            {
                indent("Section Name:" + section.SectionInformation.Name);
            }
            indentLevel--;

            // Display contained section groups if there are any.
            if (sectionGroup.SectionGroups.Count > 0)
            {
                indent("Contained Section Groups:");

                indentLevel++;
                ConfigurationSectionGroupCollection sectionGroups =
                    sectionGroup.SectionGroups;
                ShowSectionGroupCollectionInfo(sectionGroups);
            }

            Console.WriteLine("");
            indentLevel--;
        }

        static void indent(string text)
        {
            for (int i = 0; i < indentLevel; i++)
            {
                Console.Write("  ");
            }
            Console.WriteLine(text.Substring(0, Math.Min(79 - indentLevel * 2, text.Length)));
        }
    }
}
Imports System.Collections
Imports System.Configuration

Class UsingConfigurationSectionGroup
   Private Shared indentLevel As Integer = 0
    
    Public Shared Sub Main(ByVal args() As String)

        ' Get the application configuration file.
        Dim config As System.Configuration.Configuration = _
            ConfigurationManager.OpenExeConfiguration( _
            ConfigurationUserLevel.None)

        ' Get the collection of the section groups.
        Dim sectionGroups As ConfigurationSectionGroupCollection = _
            config.SectionGroups

        ' Display the section groups.
        ShowSectionGroupCollectionInfo(sectionGroups)
    End Sub

    Shared Sub ShowSectionGroupCollectionInfo( _
        ByVal sectionGroups _
        As ConfigurationSectionGroupCollection)

        Dim group As ConfigurationSectionGroup
        For Each group In sectionGroups
            ShowSectionGroupInfo(group)
        Next group
    End Sub

    Shared Sub ShowSectionGroupInfo( _
    ByVal sectionGroup As ConfigurationSectionGroup)
        ' Get the section group name.
        indent("Section Group Name: " + sectionGroup.Name)

        ' Get the fully qualified section group name.
        indent("Section Group Name: " + sectionGroup.SectionGroupName)

        indentLevel += 1

        indent("Type: " + sectionGroup.Type)
        indent("Is Group Required?: " + _
           sectionGroup.IsDeclarationRequired.ToString())
        indent("Is Group Declared?: " + _
            sectionGroup.IsDeclared.ToString())
        indent("Contained Sections:")

        indentLevel += 1
        Dim section As ConfigurationSection
        For Each section In sectionGroup.Sections
            indent("Section Name:" + section.SectionInformation.Name)
        Next section
        indentLevel -= 1

        If (sectionGroup.SectionGroups.Count > 0) Then
            indent("Contained Section Groups:")

            indentLevel += 1
            Dim sectionGroups As ConfigurationSectionGroupCollection = _
                sectionGroup.SectionGroups
            ShowSectionGroupCollectionInfo(sectionGroups)
            indentLevel -= 1
        End If

        indent("")
        indentLevel -= 1

    End Sub
    Shared Sub indent(ByVal text As String)
        Dim i As Integer
        For i = 0 To indentLevel - 1
            Console.Write("  ")
        Next i
        Console.WriteLine(Left(text, 79 - indentLevel * 2))
    End Sub

End Class

Hinweise

Einstellungen in Konfigurationsdateien (z. B. der datei Web.config) werden in Abschnitte organisiert. Da einige Abschnitte verknüpft sind, ist es häufig praktisch, sie in einer Abschnittsgruppe zu gruppieren. Die ConfigurationSectionGroup Klasse stellt das sectionGroup XML-Element dar, das zum Gruppieren von Abschnitten verwendet wird, wenn sie im configSections Element einer Konfigurationsdatei definiert sind. Abschnittsgruppen können geschachtelt werden (eine Abschnittsgruppe kann andere Abschnittsgruppen sowie Abschnitte enthalten). Das folgende Beispiel zeigt ein configSections Element, das drei geschachtelte Abschnittsgruppen definiert:

<configSections>  
  <sectionGroup name="system.web.extensions"...>  
    <sectionGroup name="scripting" ...>  
      <section name="scriptResourceHandler".../>  
      <sectionGroup name="webServices"...>  
        <section name="jsonSerialization" .../>  
        <section name="profileService" ... />        <section name="authenticationService" .../>  
        <section name="roleService" .../>  
      </sectionGroup>  
    </sectionGroup>  
  </sectionGroup>  
</configSections>  

Das Konfigurationssystem lädt Einstellungen aus Konfigurationsdateien in ConfigurationSectionGroup Objekte. Mit den Sections SectionGroups Eigenschaften können Sie auf die Abschnitte und Abschnittsgruppen zugreifen, die in einem ConfigurationSectionGroup Objekt enthalten sind.

Weitere Informationen zum Zugreifen auf Informationen aus Konfigurationsdateien finden Sie in der ConfigurationManager Klasse.

Konstruktoren

ConfigurationSectionGroup()

Initialisiert eine neue Instanz der ConfigurationSectionGroup-Klasse.

Eigenschaften

IsDeclarationRequired

Ruft einen Wert ab, der angibt, ob die Deklaration dieses ConfigurationSectionGroup-Objekts erforderlich ist.

IsDeclared

Ruft einen Wert ab, der angibt, ob dieses ConfigurationSectionGroup-Objekt deklariert wird.

Name

Ruft die Namenseigenschaft dieses ConfigurationSectionGroup-Objekts ab.

SectionGroupName

Ruft den dieser ConfigurationSectionGroup zugeordneten Abschnittsgruppennamen ab.

SectionGroups

Ruft ein ConfigurationSectionGroupCollection-Objekt ab, das alle ConfigurationSectionGroup-Objekte enthält, die untergeordnete Elemente dieses ConfigurationSectionGroup-Objekts sind.

Sections

Ruft ein ConfigurationSectionCollection-Objekt ab, das alle ConfigurationSection-Objekte innerhalb dieses ConfigurationSectionGroup-Objekts enthält.

Type

Ruft den Typ für dieses ConfigurationSectionGroup-Objekt ab oder legt diesen fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
ForceDeclaration()

Erzwingt die Deklaration für dieses ConfigurationSectionGroup-Objekt.

ForceDeclaration(Boolean)

Erzwingt die Deklaration für dieses ConfigurationSectionGroup-Objekt.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ShouldSerializeSectionGroupInTargetVersion(FrameworkName)

Gibt an, ob die aktuelle ConfigurationSectionGroup Instanz serialisiert werden soll, wenn die Konfigurationsobjekthierarchie für die angegebene Zielversion der .NET Framework serialisiert wird.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für

Siehe auch