Поделиться через


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 объекты . Свойства и SectionGroups можно использовать Sections для доступа к разделам и группам разделов, содержащимся в объекте 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)

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

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