Compartir a través de


ConfigurationSectionGroup Clase

Definición

Representa un grupo de las secciones relacionadas de un archivo de configuración.

public ref class ConfigurationSectionGroup
public class ConfigurationSectionGroup
type ConfigurationSectionGroup = class
Public Class ConfigurationSectionGroup
Herencia
ConfigurationSectionGroup
Derivado

Ejemplos

En el ejemplo siguiente se muestra cómo usar la clase para recuperar los ConfigurationSectionGroup valores de configuración. El ejemplo es una aplicación de consola que lee los valores de configuración y escribe información sobre cada grupo de secciones de configuración y las secciones de ella en la consola.

El Main método carga los valores de configuración en un Configuration objeto , recupera la SectionGroups colección del Configuration objeto y, a continuación, llama al ShowSectionGroupCollectionInfo método para mostrar los valores de propiedad de sección.

El ShowSectionGroupCollectionInfo método recorre en iteración los grupos de secciones y llama al ShowSectionGroupInfo método para cada uno.

El ShowSectionGroupInfo método muestra el nombre del grupo de secciones, algunos valores de propiedad y los nombres de las secciones que contiene. Si el grupo de secciones contiene grupos de secciones, este método llama ShowSectionGroupCollectionInfo a de forma recursiva para mostrar esos grupos de secciones.

El indentLevel campo se usa para agregar espacios al lado izquierdo de las líneas mostradas para mostrar agrupaciones lógicas. Todas las líneas están limitadas a 79 caracteres de texto para evitar el ajuste de líneas, lo que dificultaría la distinción de las agrupaciones lógicas.

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

Comentarios

Los valores de los archivos de configuración (como el archivo Web.config) se organizan en secciones. Dado que algunas secciones están relacionadas, a menudo resulta conveniente agruparlas en un grupo de secciones. La ConfigurationSectionGroup clase representa el sectionGroup elemento XML que se usa para agrupar secciones cuando se definen en el configSections elemento de un archivo de configuración. Los grupos de secciones se pueden anidar (un grupo de secciones puede contener otros grupos de secciones, así como secciones). En el ejemplo siguiente se muestra un configSections elemento que define tres grupos de secciones anidados:

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

El sistema de configuración carga los valores de los archivos de configuración en ConfigurationSectionGroup objetos . Puede usar las Sections propiedades y SectionGroups para tener acceso a las secciones y los grupos de secciones contenidos en un ConfigurationSectionGroup objeto .

Para obtener más información sobre cómo acceder a la información de los archivos de configuración, vea la ConfigurationManager clase .

Constructores

ConfigurationSectionGroup()

Inicializa una nueva instancia de la clase ConfigurationSectionGroup.

Propiedades

IsDeclarationRequired

Obtiene un valor que indica si es necesario declarar este objeto ConfigurationSectionGroup.

IsDeclared

Obtiene un valor que indica si se declara este objeto ConfigurationSectionGroup.

Name

Obtiene el nombre de propiedad de este objeto ConfigurationSectionGroup.

SectionGroupName

Obtiene el nombre de grupo de sección asociado a este objeto ConfigurationSectionGroup.

SectionGroups

Obtiene un objeto ConfigurationSectionGroupCollection que contiene todos los objetos ConfigurationSectionGroup que son secundarios respecto de este objeto ConfigurationSectionGroup.

Sections

Obtiene un objeto ConfigurationSectionCollection que contiene todos los objetos ConfigurationSection de este objeto ConfigurationSectionGroup.

Type

Obtiene o establece el tipo de este objeto ConfigurationSectionGroup.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
ForceDeclaration()

Fuerza la declaración de este objeto ConfigurationSectionGroup.

ForceDeclaration(Boolean)

Fuerza la declaración de este objeto ConfigurationSectionGroup.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ShouldSerializeSectionGroupInTargetVersion(FrameworkName)

Indica si la instancia actual ConfigurationSectionGroup se debe serializar cuando la jerarquía de objetos de configuración se serializa para la versión de destino especificada de .NET Framework.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también