ConfigurationSectionGroup 类

定义

表示配置文件中的一组相关节。

public ref class ConfigurationSectionGroup
public class ConfigurationSectionGroup
type ConfigurationSectionGroup = class
Public Class ConfigurationSectionGroup
继承
ConfigurationSectionGroup
派生

示例

以下示例演示如何使用 ConfigurationSectionGroup 类检索配置设置。 示例是一个控制台应用程序,该应用程序读取配置设置,并将有关每个配置节组及其中的部分的信息写入控制台。

方法Main将配置设置加载到 Configuration 对象中,从 Configuration 对象检索SectionGroups集合,然后调用 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 元素中 configSections 定义节时用于对分区进行分组的 XML 元素。 节组可以嵌套 (节组可以包含其他节组以及) 节。 以下示例演示定义三个 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 。 可以使用 SectionsSectionGroups 属性访问对象中包含的 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)

指示在为指定目标版本的.NET Framework序列化配置对象层次结构时,是否应序列化当前ConfigurationSectionGroup实例。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅