Teilen über


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 Die -Klasse zum Abrufen von ConfigurationSectionGroup Konfigurationseinstellungen verwendet wird. Das Beispiel ist eine Konsolenanwendung, die Konfigurationseinstellungen liest und Informationen zu jeder Konfigurationsabschnittsgruppe und den darin betreffenden 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 ShowSectionGroupCollectionInfo diese Methode rekursiv auf, um diese Abschnittsgruppen anzuzeigen.

Das indentLevel Feld wird verwendet, um auf der linken Seite der angezeigten Zeilen Leerzeichen hinzuzufügen, um logische Gruppierungen anzuzeigen. Alle Zeilen sind auf 79 Zeichen beschränkt, um Zeilenumbrüche zu vermeiden, was die Unterscheidung der logischen Gruppierungen erschweren würde.

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. die Web.config-Datei) sind in Abschnitte unterteilt. Da einige Abschnitte miteinander 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. Sie können die Sections Eigenschaften und SectionGroups verwenden, um auf die Abschnitte und Abschnittsgruppen zuzugreifen, 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 instance serialisiert werden soll, wenn die Konfigurationsobjekthierarchie für die angegebene Zielversion des .NET Framework serialisiert wird.

ToString()

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

(Geerbt von Object)

Gilt für:

Weitere Informationen