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

Возвращает имя свойства данного объекта 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)

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

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