SectionDefinition Class
Defines a configuration section.
Assembly: Microsoft.Web.Administration (in Microsoft.Web.Administration.dll)
The SectionDefinition type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | AllowDefinition | Gets or sets a value indicating valid configuration path locations for the configuration section. |
![]() | AllowLocation | Gets or sets a value indicating whether the configuration section allows the location attribute. |
![]() | Name | Gets the name of the current configuration section definition. |
![]() | OverrideModeDefault | Gets or sets the default override behavior for the current configuration section. |
![]() | RequirePermission | |
![]() | Type | Gets or sets the type name of a class that implements the configuration section and can interpret the persisted XML. |
Declaring a configuration section defines a new element for the configuration file. The new element contains settings that a configuration section handler reads. The attributes and child elements of a section you define depend on the section handler you use to read your settings.
The following <configuration> element contains an example of the <section> element that the SectionDefinition class represents.
<configuration>
<configSections>
<section name="sampleSection"
type="System.Configuration.SingleTagSectionHandler"
allowLocation="false"/>
</configSections>
<sampleSection setting1="Value1" setting2="value two"
setting3="third value" />
</configuration>
The following example shows how to define a configuration section and to define settings for that section.
using System; using System.Collections.Generic; using System.Text; using Microsoft.Web.Administration; using Microsoft.Web.Management; namespace AdministrationSnippets { public class AdministrationSectionDefinition { // List all configuration sections in applicationHost.config public void ShowAllSections() { ServerManager manager = new ServerManager(); SectionGroup rootGroup = manager.GetApplicationHostConfiguration().RootSectionGroup; ShowGroup(rootGroup, -1); } private void ShowGroup(SectionGroup group, int indentLevel) { Console.Write("".PadLeft(++indentLevel, ' ')); string grpName = String.IsNullOrEmpty(group.Name) ? "{root}" : group.Name; Console.WriteLine("+ Section Group: {0}; Sub-groups: {1}; Sections: {2}", grpName, group.SectionGroups.Count, group.Sections.Count); foreach (SectionGroup grp in group.SectionGroups) { ShowGroup(grp, indentLevel); } string path = String.Concat(group.Name, "/"); foreach (SectionDefinition def in group.Sections) { Console.Write("".PadLeft(indentLevel, ' ')); Console.WriteLine("|_Name: {0}", String.Concat(path,def.Name)); Console.Write("".PadLeft(indentLevel, ' ')); Console.WriteLine("|_AllowDefinition: {0}", def.AllowDefinition); Console.Write("".PadLeft(indentLevel, ' ')); Console.WriteLine("|_AllowLocation: {0}", def.AllowLocation); Console.Write("".PadLeft(indentLevel, ' ')); Console.WriteLine("|_OverrideModeDefault: {0}", def.OverrideModeDefault); Console.Write("".PadLeft(indentLevel, ' ')); Console.WriteLine("|_Type: {0}\r\n", String.IsNullOrEmpty(def.Type) ? "null" : def.Type); } } } }
