ConfigurationSectionGroup Classe

Definição

Representa um grupo de seções relacionadas em um arquivo de configuração.

public ref class ConfigurationSectionGroup
public class ConfigurationSectionGroup
type ConfigurationSectionGroup = class
Public Class ConfigurationSectionGroup
Herança
ConfigurationSectionGroup
Derivado

Exemplos

O exemplo a seguir mostra como usar a ConfigurationSectionGroup classe para recuperar as configurações. O exemplo é um aplicativo de console que lê as configurações e grava informações sobre cada grupo de seções de configuração e as seções nele no console.

O Main método carrega as configurações em um Configuration objeto, recupera a SectionGroups coleção do Configuration objeto e chama o ShowSectionGroupCollectionInfo método para exibir os valores da propriedade da seção.

O ShowSectionGroupCollectionInfo método itera por meio dos grupos de seções e chama o ShowSectionGroupInfo método para cada um deles.

O ShowSectionGroupInfo método exibe o nome do grupo de seções, alguns valores de propriedade e os nomes das seções que ele contém. Se o grupo de seções contiver grupos de seções, esse método chamará ShowSectionGroupCollectionInfo recursivamente para exibir esses grupos de seções.

O indentLevel campo é usado para adicionar espaços ao lado esquerdo das linhas exibidas para mostrar agrupamentos lógicos. Todas as linhas são limitadas a 79 caracteres de texto para evitar o encapsulamento de linha, o que dificultaria a distinção dos agrupamentos lógicos.

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

Comentários

As configurações em arquivos de configuração (como o arquivo Web.config) são organizadas em seções. Como algumas seções estão relacionadas, geralmente é conveniente agrupá-las em um grupo de seções. A ConfigurationSectionGroup classe representa o sectionGroup elemento XML usado para agrupar seções quando elas são definidas no configSections elemento de um arquivo de configuração. Os grupos de seções podem ser aninhados (um grupo de seções pode conter outros grupos de seções, bem como seções). O exemplo a seguir mostra um configSections elemento que define três grupos de seções aninhadas:

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

O sistema de configuração carrega configurações de arquivos de configuração em ConfigurationSectionGroup objetos. Você pode usar as propriedades e SectionGroups as Sections propriedades para acessar as seções e grupos de seções contidos em um ConfigurationSectionGroup objeto.

Para obter mais informações sobre como acessar informações de arquivos de configuração, consulte a ConfigurationManager classe.

Construtores

Nome Description
ConfigurationSectionGroup()

Inicializa uma nova instância da classe ConfigurationSectionGroup.

Propriedades

Nome Description
IsDeclarationRequired

Obtém um valor que indica se essa ConfigurationSectionGroup declaração de objeto é necessária.

IsDeclared

Obtém um valor que indica se esse ConfigurationSectionGroup objeto é declarado.

Name

Obtém a propriedade name deste ConfigurationSectionGroup objeto.

SectionGroupName

Obtém o nome do grupo de seções associado a este ConfigurationSectionGroup.

SectionGroups

Obtém um ConfigurationSectionGroupCollection objeto que contém todos os ConfigurationSectionGroup objetos que são filhos desse ConfigurationSectionGroup objeto.

Sections

Obtém um ConfigurationSectionCollection objeto que contém todos os ConfigurationSection objetos dentro desse ConfigurationSectionGroup objeto.

Type

Obtém ou define o tipo para este ConfigurationSectionGroup objeto.

Métodos

Nome Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
ForceDeclaration()

Força a declaração para este ConfigurationSectionGroup objeto.

ForceDeclaration(Boolean)

Força a declaração para este ConfigurationSectionGroup objeto.

GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ShouldSerializeSectionGroupInTargetVersion(FrameworkName)

Indica se a instância ConfigurationSectionGroup atual deve ser serializada quando a hierarquia de objetos de configuração é serializada para a versão de destino especificada do .NET Framework.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também