ConfigurationSectionGroup Classe

Definição

Representa um grupo de seções relacionadas dentro de 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 linhas, 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

Configurações em arquivos de configuração (como o arquivo Web.config) são organizados em seções. Como algumas seções estão relacionadas, muitas vezes é 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. 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 as 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

ConfigurationSectionGroup()

Inicializa uma nova instância da classe ConfigurationSectionGroup.

Propriedades

IsDeclarationRequired

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

IsDeclared

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

Name

Obtém a propriedade de nome deste objeto ConfigurationSectionGroup.

SectionGroupName

Obtém o nome do grupo da seção associado a esta ConfigurationSectionGroup.

SectionGroups

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

Sections

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

Type

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

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
ForceDeclaration()

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

ForceDeclaration(Boolean)

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

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ShouldSerializeSectionGroupInTargetVersion(FrameworkName)

Indica se a instância atual ConfigurationSectionGroup 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