ConfigurationElement Class
Updated: May 2011
Represents a configuration element within a configuration file.
Assembly: System.Configuration (in System.Configuration.dll)
The ConfigurationElement type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | ConfigurationElement | Initializes a new instance of the ConfigurationElement class. |
| Name | Description | |
|---|---|---|
![]() | CurrentConfiguration | Gets a reference to the top-level Configuration instance that represents the configuration hierarchy that the current ConfigurationElement instance belongs to. |
![]() | ElementInformation | Gets an ElementInformation object that contains the non-customizable information and functionality of the ConfigurationElement object. |
![]() | ElementProperty | Gets the ConfigurationElementProperty object that represents the ConfigurationElement object itself. |
![]() | EvaluationContext | Gets the ContextInformation object for the ConfigurationElement object. |
![]() | Item(ConfigurationProperty) | Gets or sets a property or attribute of this configuration element. |
![]() | Item(String) | Gets or sets a property, attribute, or child element of this configuration element. |
![]() | LockAllAttributesExcept | Gets the collection of locked attributes. |
![]() | LockAllElementsExcept | Gets the collection of locked elements. |
![]() | LockAttributes | Gets the collection of locked attributes |
![]() | LockElements | Gets the collection of locked elements. |
![]() | LockItem | Gets or sets a value indicating whether the element is locked. |
![]() | Properties | Gets the collection of properties. |
| Name | Description | |
|---|---|---|
![]() | DeserializeElement | Reads XML from the configuration file. |
![]() | Equals | Compares the current ConfigurationElement instance to the specified object. (Overrides Object.Equals(Object).) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Gets a unique value representing the current ConfigurationElement instance. (Overrides Object.GetHashCode().) |
![]() | GetTransformedAssemblyString | Returns the transformed version of the specified assembly name. |
![]() | GetTransformedTypeString | Returns the transformed version of the specified type name. |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | Init | Sets the ConfigurationElement object to its initial state. |
![]() | InitializeDefault | Used to initialize a default set of values for the ConfigurationElement object. |
![]() | IsModified | Indicates whether this configuration element has been modified since it was last saved or loaded, when implemented in a derived class. |
![]() | IsReadOnly | Gets a value indicating whether the ConfigurationElement object is read-only. |
![]() | ListErrors | Adds the invalid-property errors in this ConfigurationElement object, and in all subelements, to the passed list. |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | OnDeserializeUnrecognizedAttribute | Gets a value indicating whether an unknown attribute is encountered during deserialization. |
![]() | OnDeserializeUnrecognizedElement | Gets a value indicating whether an unknown element is encountered during deserialization. |
![]() | OnRequiredPropertyNotFound | Throws an exception when a required property is not found. |
![]() | PostDeserialize | Called after deserialization. |
![]() | PreSerialize | Called before serialization. |
![]() | Reset | Resets the internal state of the ConfigurationElement object, including the locks and the properties collections. |
![]() | ResetModified | Resets the value of the IsModified method to false when implemented in a derived class. |
![]() | SerializeElement | Writes the contents of this configuration element to the configuration file when implemented in a derived class. |
![]() | SerializeToXmlElement | Writes the outer tags of this configuration element to the configuration file when implemented in a derived class. |
![]() | SetPropertyValue | Sets a property to the specified value. |
![]() | SetReadOnly | Sets the IsReadOnly property for the ConfigurationElement object and all subelements. |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
![]() | Unmerge | Modifies the ConfigurationElement object to remove all values that should not be saved. |
The ConfigurationElement is an abstract class that is used to represent an XML element in a configuration file (such as Web.config). An element in a configuration file can contain zero, one, or more child elements.
Because the ConfigurationElement class is defined as abstract, you cannot create an instance of it. You can only derive classes from it. The .NET Framework includes classes that derive from the ConfigurationElement class in order to represent standard XML configuration elements, such as ConfigurationSection. You can also extend the ConfigurationElement class to access custom configuration elements and sections. The example included later in this topic shows how to access custom configuration elements and sections by using custom classes that derive from ConfigurationElement.
You can also extend the standard configuration types such as ConfigurationElement, ConfigurationElementCollection, ConfigurationProperty, and ConfigurationSection. For more information, see the documentation for those classes.
For more information about how to access information in configuration files, see the ConfigurationManager class and the WebConfigurationManager class.
Notes to InheritorsEvery ConfigurationElement object creates an internal ConfigurationPropertyCollection collection of ConfigurationProperty objects that represents either the element attributes or a collection of child elements.
Non-customizable information and functionality is contained by an ElementInformation object provided by the ElementInformation property.
You can use either a programmatic or a declarative (attributed) coding model to create a custom configuration element:
The programmatic model requires that for each element 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. For an example of how to use this model, see the ConfigurationSection class.
The simpler declarative model, also called the attributed model, allows you to define an element attribute by using a property and then decorate 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 element property objects for you and performs the required initialization. The example shown later in this topic shows how to use this model.
The following code example shows how to implement a custom ConfigurationElement both as an individual element in a custom section and as a collection of elements in a custom section. The example consists of the following files:
An app.config file that contains a custom section that is named MyUrls. This section contains a simple element (it does not contain any other elements) and a collection of elements. The simple element is named simple and the collection is named urls.
A console application. The application reads the contents of the app.config file and writes the information to the console. It uses classes that derive from ConfigurationElement, ConfigurationElementCollection, and ConfigurationSection.
A class named UrlsSection that derives from the ConfigurationSection class. This class is used to access the MyUrls section in the configuration file.
A class named UrlsCollection that derives from the ConfigurationElementCollection class. This class is used to access the urls collection in the configuration file.
A class named UrlConfigElement that derives from the ConfigurationElement class. This class is used to access the simple element and the members of the urls collection in the configuration file.
To run the example, perform the following steps:
Create a solution that has a console application project and a class library project that is named ConfigurationElement.
Put the three class files in the class library project and put the other files in the console library project.
In both projects set a reference to System.Configuration.
In the console application project set a project reference to the class library project.
<configuration>
<configSections>
<section name="MyUrls" type="Samples.AspNet.UrlsSection, ConfigurationElement, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true" />
</configSections>
<MyUrls name="MyFavorites">
<simple name="Microsoft1" url="http://www.microsoft1.com" port="1" />
<urls>
<clear />
<add name="Microsoft2" url="http://www.microsoft2.com" port="2" />
<add name="Contoso" url="http://www.contoso.com" port="8080" />
</urls>
</MyUrls>
</configuration>
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
System.Configuration.ConfigurationElement
System.Configuration.ConfigurationElementCollection
System.Configuration.ConfigurationSection
System.Configuration.ConnectionStringSettings
System.Configuration.IdnElement
System.Configuration.IriParsingElement
System.Configuration.KeyValueConfigurationElement
System.Configuration.NameValueConfigurationElement
System.Configuration.ProtectedProviderSettings
System.Configuration.ProviderSettings
System.Configuration.SchemeSettingElement
System.Configuration.SettingElement
System.Configuration.SettingValueElement
System.Net.Configuration.AuthenticationModuleElement
System.Net.Configuration.BypassElement
System.Net.Configuration.ConnectionManagementElement
System.Net.Configuration.FtpCachePolicyElement
System.Net.Configuration.HttpCachePolicyElement
System.Net.Configuration.HttpListenerElement
System.Net.Configuration.HttpWebRequestElement
System.Net.Configuration.Ipv6Element
System.Net.Configuration.ModuleElement
System.Net.Configuration.PerformanceCountersElement
System.Net.Configuration.ProxyElement
System.Net.Configuration.ServicePointManagerElement
System.Net.Configuration.SmtpNetworkElement
System.Net.Configuration.SmtpSpecifiedPickupDirectoryElement
System.Net.Configuration.SocketElement
System.Net.Configuration.WebProxyScriptElement
System.Net.Configuration.WebRequestModuleElement
System.Runtime.Caching.Configuration.MemoryCacheElement
System.Runtime.Serialization.Configuration.DeclaredTypeElement
System.Runtime.Serialization.Configuration.ParameterElement
System.Runtime.Serialization.Configuration.TypeElement
System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement
System.Security.Authentication.ExtendedProtection.Configuration.ServiceNameElement
System.ServiceModel.Activation.Configuration.SecurityIdentifierElement
System.ServiceModel.Activities.Configuration.ChannelSettingsElement
System.ServiceModel.Activities.Configuration.FactorySettingsElement
System.ServiceModel.Activities.Tracking.Configuration.TrackingConfigurationElement
System.ServiceModel.Configuration.AddressHeaderCollectionElement
System.ServiceModel.Configuration.AllowedAudienceUriElement
System.ServiceModel.Configuration.AuthorizationPolicyTypeElement
System.ServiceModel.Configuration.BaseAddressElement
System.ServiceModel.Configuration.BaseAddressPrefixFilterElement
System.ServiceModel.Configuration.BasicHttpMessageSecurityElement
System.ServiceModel.Configuration.BasicHttpSecurityElement
System.ServiceModel.Configuration.BindingCollectionElement
System.ServiceModel.Configuration.CertificateElement
System.ServiceModel.Configuration.CertificateReferenceElement
System.ServiceModel.Configuration.ChannelEndpointElement
System.ServiceModel.Configuration.ChannelPoolSettingsElement
System.ServiceModel.Configuration.ClaimTypeElement
System.ServiceModel.Configuration.ComContractElement
System.ServiceModel.Configuration.ComMethodElement
System.ServiceModel.Configuration.ComPersistableTypeElement
System.ServiceModel.Configuration.ComUdtElement
System.ServiceModel.Configuration.DefaultPortElement
System.ServiceModel.Configuration.DnsElement
System.ServiceModel.Configuration.EndpointAddressElementBase
System.ServiceModel.Configuration.EndpointCollectionElement
System.ServiceModel.Configuration.EndToEndTracingElement
System.ServiceModel.Configuration.ExtensionElement
System.ServiceModel.Configuration.FederatedMessageSecurityOverHttpElement
System.ServiceModel.Configuration.HostElement
System.ServiceModel.Configuration.HostTimeoutsElement
System.ServiceModel.Configuration.HttpDigestClientElement
System.ServiceModel.Configuration.HttpTransportSecurityElement
System.ServiceModel.Configuration.IdentityElement
System.ServiceModel.Configuration.IssuedTokenClientBehaviorsElement
System.ServiceModel.Configuration.IssuedTokenClientElement
System.ServiceModel.Configuration.IssuedTokenParametersElement
System.ServiceModel.Configuration.IssuedTokenServiceElement
System.ServiceModel.Configuration.LocalClientSecuritySettingsElement
System.ServiceModel.Configuration.LocalServiceSecuritySettingsElement
System.ServiceModel.Configuration.MessageLoggingElement
System.ServiceModel.Configuration.MessageSecurityOverHttpElement
System.ServiceModel.Configuration.MessageSecurityOverMsmqElement
System.ServiceModel.Configuration.MessageSecurityOverTcpElement
System.ServiceModel.Configuration.MetadataElement
System.ServiceModel.Configuration.MsmqIntegrationSecurityElement
System.ServiceModel.Configuration.MsmqTransportSecurityElement
System.ServiceModel.Configuration.NamedPipeConnectionPoolSettingsElement
System.ServiceModel.Configuration.NamedPipeTransportSecurityElement
System.ServiceModel.Configuration.NetMsmqSecurityElement
System.ServiceModel.Configuration.NetNamedPipeSecurityElement
System.ServiceModel.Configuration.NetTcpSecurityElement
System.ServiceModel.Configuration.PeerCredentialElement
System.ServiceModel.Configuration.PeerCustomResolverElement
System.ServiceModel.Configuration.PeerResolverElement
System.ServiceModel.Configuration.PeerSecurityElement
System.ServiceModel.Configuration.PeerTransportSecurityElement
System.ServiceModel.Configuration.PolicyImporterElement
System.ServiceModel.Configuration.ProtocolMappingElement
System.ServiceModel.Configuration.RsaElement
System.ServiceModel.Configuration.SecureConversationServiceElement
System.ServiceModel.Configuration.ServiceActivationElement
System.ServiceModel.Configuration.ServiceElement
System.ServiceModel.Configuration.ServiceEndpointElement
System.ServiceModel.Configuration.ServiceModelExtensionCollectionElement(TServiceModelExtensionElement)
System.ServiceModel.Configuration.ServiceModelExtensionElement
System.ServiceModel.Configuration.ServicePrincipalNameElement
System.ServiceModel.Configuration.StandardBindingElement
System.ServiceModel.Configuration.StandardBindingReliableSessionElement
System.ServiceModel.Configuration.StandardEndpointElement
System.ServiceModel.Configuration.TcpConnectionPoolSettingsElement
System.ServiceModel.Configuration.TcpTransportSecurityElement
System.ServiceModel.Configuration.TransportConfigurationTypeElement
System.ServiceModel.Configuration.UserNameServiceElement
System.ServiceModel.Configuration.UserPrincipalNameElement
System.ServiceModel.Configuration.WebHttpSecurityElement
System.ServiceModel.Configuration.WindowsClientElement
System.ServiceModel.Configuration.WindowsServiceElement
System.ServiceModel.Configuration.WsdlImporterElement
System.ServiceModel.Configuration.WSDualHttpSecurityElement
System.ServiceModel.Configuration.WSFederationHttpSecurityElement
System.ServiceModel.Configuration.WSHttpSecurityElement
System.ServiceModel.Configuration.WSHttpTransportSecurityElement
System.ServiceModel.Configuration.X509CertificateTrustedIssuerElement
System.ServiceModel.Configuration.X509ClientCertificateAuthenticationElement
System.ServiceModel.Configuration.X509ClientCertificateCredentialsElement
System.ServiceModel.Configuration.X509DefaultServiceCertificateElement
System.ServiceModel.Configuration.X509InitiatorCertificateClientElement
System.ServiceModel.Configuration.X509InitiatorCertificateServiceElement
System.ServiceModel.Configuration.X509PeerCertificateAuthenticationElement
System.ServiceModel.Configuration.X509PeerCertificateElement
System.ServiceModel.Configuration.X509RecipientCertificateClientElement
System.ServiceModel.Configuration.X509RecipientCertificateServiceElement
System.ServiceModel.Configuration.X509ScopedServiceCertificateElement
System.ServiceModel.Configuration.X509ServiceCertificateAuthenticationElement
System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement
System.ServiceModel.Configuration.XmlElementElement
System.ServiceModel.Configuration.XPathMessageFilterElement
System.ServiceModel.Discovery.Configuration.ContractTypeNameElement
System.ServiceModel.Discovery.Configuration.DiscoveryClientSettingsElement
System.ServiceModel.Discovery.Configuration.FindCriteriaElement
System.ServiceModel.Discovery.Configuration.ScopeElement
System.ServiceModel.Discovery.Configuration.UdpTransportSettingsElement
System.ServiceModel.Routing.Configuration.BackupEndpointElement
System.ServiceModel.Routing.Configuration.FilterElement
System.ServiceModel.Routing.Configuration.FilterTableEntryElement
System.ServiceModel.Routing.Configuration.NamespaceElement
System.Web.Configuration.AssemblyInfo
System.Web.Configuration.AuthorizationRule
System.Web.Configuration.BufferModeSettings
System.Web.Configuration.BuildProvider
System.Web.Configuration.ClientTarget
System.Web.Configuration.CodeSubDirectory
System.Web.Configuration.Compiler
System.Web.Configuration.Converter
System.Web.Configuration.CustomError
System.Web.Configuration.EventMappingSettings
System.Web.Configuration.ExpressionBuilder
System.Web.Configuration.FolderLevelBuildProvider
System.Web.Configuration.FormsAuthenticationConfiguration
System.Web.Configuration.FormsAuthenticationCredentials
System.Web.Configuration.FormsAuthenticationUser
System.Web.Configuration.FullTrustAssembly
System.Web.Configuration.HttpHandlerAction
System.Web.Configuration.HttpModuleAction
System.Web.Configuration.IgnoreDeviceFilterElement
System.Web.Configuration.NamespaceInfo
System.Web.Configuration.OutputCacheProfile
System.Web.Configuration.PartialTrustVisibleAssembly
System.Web.Configuration.PassportAuthentication
System.Web.Configuration.ProfileGroupSettings
System.Web.Configuration.ProfilePropertySettings
System.Web.Configuration.ProfileSettings
System.Web.Configuration.ProtocolElement
System.Web.Configuration.RuleSettings
System.Web.Configuration.SqlCacheDependencyDatabase
System.Web.Configuration.TagMapInfo
System.Web.Configuration.TagPrefixInfo
System.Web.Configuration.TransformerInfo
System.Web.Configuration.TrustLevel
System.Web.Configuration.UrlMapping
System.Web.Configuration.WebPartsPersonalization
System.Web.Configuration.WebPartsPersonalizationAuthorization
System.Web.Mobile.DeviceFilterElement
System.Web.Services.Configuration.DiagnosticsElement
System.Web.Services.Configuration.ProtocolElement
System.Web.Services.Configuration.SoapEnvelopeProcessingElement
System.Web.Services.Configuration.SoapExtensionTypeElement
System.Web.Services.Configuration.TypeElement
System.Web.Services.Configuration.WsdlHelpGeneratorElement
System.Web.Services.Configuration.WsiProfilesElement
System.Web.UI.MobileControls.ControlElement
System.Web.UI.MobileControls.DeviceElement
System.Workflow.Runtime.Configuration.WorkflowRuntimeServiceElement
System.Xaml.Hosting.Configuration.HandlerElement
System.Xml.Serialization.Configuration.SchemaImporterExtensionElement
