Язык

ConfigurationSectionGroup Класс

Определение

Представляет группу связанных разделов в файле конфигурации.

public ref class ConfigurationSectionGroup
public class ConfigurationSectionGroup
type ConfigurationSectionGroup = class
Public Class ConfigurationSectionGroup
Наследование
ConfigurationSectionGroup
Производный

Примеры

В следующем примере показано, как использовать ConfigurationSectionGroup класс для получения параметров конфигурации. Примером является консольное приложение, которое считывает параметры конфигурации и записывает сведения о каждой группе разделов конфигурации и разделах в консоли.

Метод Main загружает параметры конфигурации в Configuration объект, извлекает SectionGroups коллекцию из Configuration объекта, а затем вызывает ShowSectionGroupCollectionInfo метод для отображения значений свойств раздела.

Метод ShowSectionGroupCollectionInfo выполняет итерацию по группам разделов и вызывает ShowSectionGroupInfo метод для каждого из них.

Метод ShowSectionGroupInfo отображает имя группы разделов, некоторые значения свойств и имена разделов, содержащихся в нем. Если группа разделов содержит группы разделов, этот метод вызывает ShowSectionGroupCollectionInfo рекурсивно для отображения этих групп разделов.

Поле indentLevel используется для добавления пробелов в левую сторону отображаемых строк для отображения логических групп. Все строки ограничены 79 символами текста, чтобы избежать упаковки строк, что усложняет различие логических групп.

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

Комментарии

Параметры в файлах конфигурации (например, Web.config-файле) организованы в разделы. Так как некоторые разделы связаны, их часто удобно сгруппировать в группу разделов. Класс ConfigurationSectionGroup представляет sectionGroup XML-элемент, используемый для группирования разделов при определении в configSections элементе файла конфигурации. Группы разделов можно вложить (группа разделов может содержать другие группы разделов, а также разделы). В следующем примере показан элемент, определяющий configSections три вложенные группы разделов:

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

Система конфигурации загружает параметры из файлов конфигурации в ConfigurationSectionGroup объекты. Вы можете использовать Sections свойства и SectionGroups разделы для доступа к разделам и группам разделов, содержащимся в объекте ConfigurationSectionGroup .

Дополнительные сведения о доступе к данным из файлов конфигурации см. в ConfigurationManager классе.

Конструкторы

Имя Описание
ConfigurationSectionGroup()

Инициализирует новый экземпляр класса ConfigurationSectionGroup.

Свойства

Имя Описание
IsDeclarationRequired

Возвращает значение, указывающее, требуется ли это ConfigurationSectionGroup объявление объекта.

IsDeclared

Возвращает значение, указывающее, объявлен ли этот ConfigurationSectionGroup объект.

Name

Возвращает свойство name данного ConfigurationSectionGroup объекта.

SectionGroupName

Возвращает имя группы разделов, связанное с этим ConfigurationSectionGroup.

SectionGroups

ConfigurationSectionGroupCollection Возвращает объект, содержащий все ConfigurationSectionGroup объекты, которые являются дочерними объектами этого ConfigurationSectionGroup объекта.

Sections

ConfigurationSectionCollection Возвращает объект, содержащий все ConfigurationSection объекты в этом ConfigurationSectionGroup объекте.

Type

Возвращает или задает тип для этого ConfigurationSectionGroup объекта.

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
ForceDeclaration()

Принудительно задает объявление для этого ConfigurationSectionGroup объекта.

ForceDeclaration(Boolean)

Принудительно задает объявление для этого ConfigurationSectionGroup объекта.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ShouldSerializeSectionGroupInTargetVersion(FrameworkName)

Указывает, следует ли сериализовать текущий экземпляр ConfigurationSectionGroup при сериализации иерархии объектов конфигурации для указанной целевой версии платформы .NET Framework.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел