Export (0) Print
Expand All

ConfigurationSection Class

Represents a section within a configuration file.

Namespace:  System.Configuration
Assembly:  System.Configuration (in System.Configuration.dll)

public ref class ConfigurationSection abstract : public ConfigurationElement

You use the ConfigurationSection class to implement a custom section type. Extend the ConfigurationSection class to provide custom handling and programmatic access to custom configuration sections. For more information, see How to: Create Custom Configuration Sections Using ConfigurationSection.

A section registers its handling type with an entry in the configSections element. For an example, see the configuration file excerpt shown in the Example section.

NoteNote:

In previous versions of the .NET Framework, configuration section handlers were used to make changes to configuration settings programmatically. Now, all the default configuration sections are represented by classes that extend the ConfigurationSection class.

Notes to Implementers:

You can use a programmatic or a declarative (attributed) coding model to create custom configuration sections:

  • Programmatic model. This model requires that for each section attribute you create a property to get or set its value and add it to the internal property bag of the underlying ConfigurationElement base class.

  • Declarative model. This simpler model, also called the attributed model, allows you to define a section attribute by using a property and decorating it with attributes. These attributes instruct the ASP.NET configuration system about the property types and their default values. With this information, obtained through reflection, the ASP.NET configuration system creates the section property objects and performs the required initialization.

The Configuration class allows programmatic access for editing configuration files. You can access these files for reading or writing as follows:

  • Reading. You use GetSection or GetSectionGroup to read configuration information. Note that the user or process that reads must have the following permissions:

    • Read permission on the configuration file at the current configuration hierarchy level.

    • Read permissions on all the parent configuration files.

    If your application needs read-only access to its own configuration, it is recommended you use the GetSection() overloaded methods in the case of Web applications, or the ConfigurationManager::GetSection method in the case of client applications.

    These methods provide access to the cached configuration values for the current application, which has better performance than the Configuration class.

    NoteNote:

    If you use a static GetSection method that takes a path parameter, the path parameter must refer to the application in which the code is running; otherwise, the parameter is ignored and configuration information for the currently-running application is returned.

  • Writing. You use one of the Save methods to write configuration information. Note that the user or process that writes must have the following permissions:

    • Write permission on the configuration file and directory at the current configuration hierarchy level.

    • Read permissions on all the configuration files.

The following example shows how to implement a custom section programmatically.

For a complete example that shows how to implement and use a custom section implemented using the attributed model, see ConfigurationElement.

No code example is currently available or this language may not be supported.

The following example is an excerpt of the configuration file as it applies to the previous example.

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<configSections>

<section name="CustomSection" type="Samples.AspNet. CustomSection, CustomConfigurationSection, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true" />

</configSections>

<CustomSection fileName="default.txt" maxUsers="1000" maxIdleTime="00:15:00" />

</configuration>

System::Object
  System.Configuration::ConfigurationElement
    System.Configuration::ConfigurationSection
      System.Configuration::AppSettingsSection
      System.Configuration::ClientSettingsSection
      System.Configuration::ConnectionStringsSection
      System.Configuration::DefaultSection
      System.Configuration::IgnoreSection
      System.Configuration::ProtectedConfigurationSection
      System.Net.Configuration::AuthenticationModulesSection
      System.Net.Configuration::ConnectionManagementSection
      System.Net.Configuration::DefaultProxySection
      System.Net.Configuration::RequestCachingSection
      System.Net.Configuration::SettingsSection
      System.Net.Configuration::SmtpSection
      System.Net.Configuration::WebRequestModulesSection
      System.Runtime.Serialization.Configuration::DataContractSerializerSection
      System.ServiceModel.Activation.Configuration::DiagnosticSection
      System.ServiceModel.Activation.Configuration::NetPipeSection
      System.ServiceModel.Activation.Configuration::NetTcpSection
      System.ServiceModel.Configuration::BehaviorsSection
      System.ServiceModel.Configuration::BindingsSection
      System.ServiceModel.Configuration::ClientSection
      System.ServiceModel.Configuration::ComContractsSection
      System.ServiceModel.Configuration::CommonBehaviorsSection
      System.ServiceModel.Configuration::DiagnosticSection
      System.ServiceModel.Configuration::ExtensionsSection
      System.ServiceModel.Configuration::ServiceHostingEnvironmentSection
      System.ServiceModel.Configuration::ServicesSection
      System.Transactions.Configuration::DefaultSettingsSection
      System.Transactions.Configuration::MachineSettingsSection
      System.Web.Configuration::AnonymousIdentificationSection
      System.Web.Configuration::AuthenticationSection
      System.Web.Configuration::AuthorizationSection
      System.Web.Configuration::CacheSection
      System.Web.Configuration::ClientTargetSection
      System.Web.Configuration::CompilationSection
      System.Web.Configuration::CustomErrorsSection
      System.Web.Configuration::DeploymentSection
      System.Web.Configuration::GlobalizationSection
      System.Web.Configuration::HealthMonitoringSection
      System.Web.Configuration::HostingEnvironmentSection
      System.Web.Configuration::HttpCookiesSection
      System.Web.Configuration::HttpHandlersSection
      System.Web.Configuration::HttpModulesSection
      System.Web.Configuration::HttpRuntimeSection
      System.Web.Configuration::IdentitySection
      System.Web.Configuration::MachineKeySection
      System.Web.Configuration::MembershipSection
      System.Web.Configuration::OutputCacheSection
      System.Web.Configuration::OutputCacheSettingsSection
      System.Web.Configuration::PagesSection
      System.Web.Configuration::ProcessModelSection
      System.Web.Configuration::ProfileSection
      System.Web.Configuration::RoleManagerSection
      System.Web.Configuration::ScriptingAuthenticationServiceSection
      System.Web.Configuration::ScriptingJsonSerializationSection
      System.Web.Configuration::ScriptingProfileServiceSection
      System.Web.Configuration::ScriptingRoleServiceSection
      System.Web.Configuration::ScriptingScriptResourceHandlerSection
      System.Web.Configuration::SecurityPolicySection
      System.Web.Configuration::SessionPageStateSection
      System.Web.Configuration::SessionStateSection
      System.Web.Configuration::SiteMapSection
      System.Web.Configuration::SqlCacheDependencySection
      System.Web.Configuration::TraceSection
      System.Web.Configuration::TrustSection
      System.Web.Configuration::UrlMappingsSection
      System.Web.Configuration::WebControlsSection
      System.Web.Configuration::WebPartsSection
      System.Web.Configuration::XhtmlConformanceSection
      System.Web.Mobile::DeviceFiltersSection
      System.Web.Services.Configuration::WebServicesSection
      System.Web.UI.MobileControls::MobileControlsSection
      System.Windows.Forms::WindowsFormsSection
      System.Workflow.Activities.Configuration::ActiveDirectoryRoleFactoryConfiguration
      System.Workflow.Activities::ExternalDataExchangeServiceSection
      System.Workflow.Runtime.Configuration::WorkflowRuntimeSection
      System.Xml.Serialization.Configuration::DateTimeSerializationSection
      System.Xml.Serialization.Configuration::SchemaImporterExtensionsSection
      System.Xml.Serialization.Configuration::XmlSerializerSection

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0

Community Additions

ADD
Show:
© 2014 Microsoft