ConfigurationSectionGroup Třída

Definice

Představuje skupinu souvisejících oddílů v rámci konfiguračního souboru.

public ref class ConfigurationSectionGroup
public class ConfigurationSectionGroup
type ConfigurationSectionGroup = class
Public Class ConfigurationSectionGroup
Dědičnost
ConfigurationSectionGroup
Odvozené

Příklady

Následující příklad ukazuje, jak pomocí ConfigurationSectionGroup třídy načíst nastavení konfigurace. Příkladem je konzolová aplikace, která čte nastavení konfigurace a zapisuje informace o každé skupině oddílů konfigurace a oddílech v ní do konzoly.

Metoda Main načte nastavení konfigurace do objektu Configuration , načte SectionGroups kolekci z objektu Configuration a potom zavolá metodu ShowSectionGroupCollectionInfo pro zobrazení hodnot vlastností oddílu.

Metoda ShowSectionGroupCollectionInfo prochází skupiny oddílů a volá metodu ShowSectionGroupInfo pro každou z nich.

Metoda ShowSectionGroupInfo zobrazí název skupiny oddílů, některé hodnoty vlastností a názvy oddílů, které obsahuje. Pokud skupina oddílů obsahuje skupiny oddílů, tato metoda volá ShowSectionGroupCollectionInfo rekurzivně k zobrazení těchto skupin oddílů.

Pole indentLevel slouží k přidání mezer na levou stranu zobrazených řádků k zobrazení logických seskupení. Všechny řádky jsou omezeny na 79 znaků textu, aby se zabránilo obtékání řádku, což by znesnadnit rozlišení logických seskupení.

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

Poznámky

Nastavení v konfiguračních souborech (například v souboru Web.config) jsou uspořádaná do oddílů. Vzhledem k tomu, že některé oddíly souvisejí, je často vhodné je seskupit do skupiny oddílů. ConfigurationSectionGroup Třída představuje sectionGroup XML element, který se používá k seskupení oddílů, když jsou definovány v configSections elementu konfiguračního souboru. Skupiny oddílů je možné vnořit (skupina oddílů může obsahovat i jiné skupiny oddílů a oddíly). Následující příklad ukazuje configSections prvek, který definuje tři vnořené skupiny oddílů:

<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>

Konfigurační systém načte nastavení z konfiguračních souborů do ConfigurationSectionGroup objektů. Pomocí vlastností SectionsSectionGroups můžete získat přístup k oddílům a skupinám oddílů obsaženým v objektu ConfigurationSectionGroup .

Další informace o přístupu k informacím z konfiguračních souborů naleznete ve ConfigurationManager třídě.

Konstruktory

Name Description
ConfigurationSectionGroup()

Inicializuje novou instanci ConfigurationSectionGroup třídy.

Vlastnosti

Name Description
IsDeclarationRequired

Získá hodnotu, která určuje, zda je tato ConfigurationSectionGroup deklarace objektu požadována.

IsDeclared

Získá hodnotu, která určuje, zda je tento ConfigurationSectionGroup objekt deklarován.

Name

Získá název vlastnost tohoto ConfigurationSectionGroup objektu.

SectionGroupName

Získá název skupiny oddílů přidružený k tomuto ConfigurationSectionGroup.

SectionGroups

ConfigurationSectionGroupCollection Získá objekt, který obsahuje všechny ConfigurationSectionGroup objekty, které jsou podřízené tomuto ConfigurationSectionGroup objektu.

Sections

ConfigurationSectionCollection Získá objekt, který obsahuje všechny ConfigurationSection objekty v tomto ConfigurationSectionGroup objektu.

Type

Získá nebo nastaví typ pro tento ConfigurationSectionGroup objekt.

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
ForceDeclaration()

Vynutí deklaraci tohoto ConfigurationSectionGroup objektu.

ForceDeclaration(Boolean)

Vynutí deklaraci tohoto ConfigurationSectionGroup objektu.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ShouldSerializeSectionGroupInTargetVersion(FrameworkName)

Určuje, zda aktuální ConfigurationSectionGroup instance by měla být serializována, pokud je hierarchie objektů konfigurace serializována pro zadanou cílovou verzi .NET Framework.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také