Condividi tramite


ConfigurationSectionGroup Classe

Definizione

Rappresenta un gruppo di sezioni correlate all'interno di un file di configurazione.

public ref class ConfigurationSectionGroup
public class ConfigurationSectionGroup
type ConfigurationSectionGroup = class
Public Class ConfigurationSectionGroup
Ereditarietà
ConfigurationSectionGroup
Derivato

Esempio

Nell'esempio seguente viene illustrato come usare la ConfigurationSectionGroup classe per recuperare le impostazioni di configurazione. L'esempio è un'applicazione console che legge le impostazioni di configurazione e scrive informazioni su ogni gruppo di sezioni di configurazione e le sezioni in esso contenute nella console.

Il Main metodo carica le impostazioni di configurazione in un Configuration oggetto , recupera l'insieme SectionGroups dall'oggetto Configuration e quindi chiama il ShowSectionGroupCollectionInfo metodo per visualizzare i valori delle proprietà della sezione.

Il ShowSectionGroupCollectionInfo metodo scorre i gruppi di sezioni e chiama il ShowSectionGroupInfo metodo per ognuno di essi.

Il ShowSectionGroupInfo metodo visualizza il nome del gruppo di sezioni, alcuni valori delle proprietà e i nomi delle sezioni in esso contenute. Se il gruppo di sezioni contiene gruppi di sezioni, questo metodo chiama ShowSectionGroupCollectionInfo in modo ricorsivo per visualizzare i gruppi di sezioni.

Il indentLevel campo viene utilizzato per aggiungere spazi al lato sinistro delle righe visualizzate per visualizzare i raggruppamenti logici. Tutte le righe sono limitate a 79 caratteri di testo per evitare il ritorno a capo automatico, il che renderebbe più difficile distinguere i raggruppamenti logici.

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

Commenti

Le impostazioni nei file di configurazione (ad esempio il file Web.config) sono organizzate in sezioni. Poiché alcune sezioni sono correlate, spesso è utile raggrupparle in un gruppo di sezioni. La ConfigurationSectionGroup classe rappresenta l'elemento sectionGroup XML utilizzato per raggruppare le sezioni quando vengono definite nell'elemento configSections di un file di configurazione. I gruppi di sezioni possono essere annidati (un gruppo di sezioni può contenere altri gruppi di sezioni e sezioni). L'esempio seguente mostra un configSections elemento che definisce tre gruppi di sezioni annidati:

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

Il sistema di configurazione carica le impostazioni dai file di configurazione agli ConfigurationSectionGroup oggetti. È possibile utilizzare le Sections proprietà e SectionGroups per accedere alle sezioni e ai gruppi di sezioni contenuti in un ConfigurationSectionGroup oggetto .

Per altre informazioni su come accedere alle informazioni dai file di configurazione, vedere la ConfigurationManager classe .

Costruttori

ConfigurationSectionGroup()

Inizializza una nuova istanza della classe ConfigurationSectionGroup.

Proprietà

IsDeclarationRequired

Ottiene un valore che indica se questa dichiarazione dell'oggetto ConfigurationSectionGroup è obbligatoria.

IsDeclared

Ottiene un valore che indica se questo oggetto ConfigurationSectionGroup è dichiarato.

Name

Ottiene la proprietà del nome di questo oggetto ConfigurationSectionGroup.

SectionGroupName

Ottiene il nome del gruppo di sezioni associato a questa classe ConfigurationSectionGroup.

SectionGroups

Ottiene un oggetto ConfigurationSectionGroupCollection contenente tutti gli oggetti ConfigurationSectionGroup figli di questo oggetto ConfigurationSectionGroup.

Sections

Ottiene un oggetto ConfigurationSectionCollection contenente tutti gli oggetti ConfigurationSection all'interno di questo oggetto ConfigurationSectionGroup.

Type

Ottiene o imposta il tipo di questo oggetto ConfigurationSectionGroup.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
ForceDeclaration()

Impone la dichiarazione per questo oggetto ConfigurationSectionGroup.

ForceDeclaration(Boolean)

Impone la dichiarazione per questo oggetto ConfigurationSectionGroup.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ShouldSerializeSectionGroupInTargetVersion(FrameworkName)

Indica se l'istanza corrente ConfigurationSectionGroup deve essere serializzata quando la gerarchia degli oggetti di configurazione viene serializzata per la versione di destinazione specificata di .NET Framework.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche