ConfigurationElementCollection, classe
Mise à jour : novembre 2007
Représente un élément de configuration contenant une collection d'éléments enfants.
Assembly : System.Configuration (dans System.Configuration.dll)
public abstract class ConfigurationElementCollection : ConfigurationElement, ICollection, IEnumerable
public abstract class ConfigurationElementCollection extends ConfigurationElement implements ICollection, IEnumerable
public abstract class ConfigurationElementCollection extends ConfigurationElement implements ICollection, IEnumerable
Le ConfigurationElementCollection représente une collection d'éléments dans un fichier de configuration.
Remarque : |
|---|
Un élément dans un fichier de configuration fait référence à un élément XML de base ou à une section. Un élément simple est une balise XML avec des attributs connexes, le cas échéant. Un élément simple constitue une section. Les sections complexes peuvent contenir un ou plusieurs éléments simples, une collection d'éléments et d'autres sections. |
Vous utilisez ConfigurationElementCollection pour travailler avec une collection d'objets ConfigurationElement. Implémentez cette classe pour ajouter des collections d'éléments ConfigurationElement personnalisés à une ConfigurationSection.
Remarques à l'attention des implémenteurs :Vous pouvez utiliser un modèle de codage déclaratif (attribué) ou de programmation pour créer un élément de configuration personnalisé.
Le modèle de programmation exige que pour chaque attribut d'élément vous créiez une propriété pour obtenir et définir sa valeur et que vous l'ajoutiez au sac de propriétés internes de la classe de base ConfigurationElement sous-jacente.
Le modèle déclaratif, également connu sous le nom de modèle attribué, vous permet de définir un attribut d'élément en utilisant une propriété et en la configurant avec des attributs. Ces attributs indiquent au système de configuration ASP.NET quels sont les types des propriétés et leurs valeurs par défaut. ASP.NET peut utiliser la réflexion pour obtenir ces informations, puis créer les objets de propriété d'élément et effectuer l'initialisation requise.
L'exemple de code suivant montre comment implémenter une ConfigurationElementCollection personnalisée. Pour des exemples de types personnalisés connexes, consultez ConfigurationSection et ConfigurationElement.
using System; using System.Configuration; using System.Collections; namespace Samples.AspNet { // Define the UrlsCollection that contains // UrlsConfigElement elements. public class UrlsCollection : ConfigurationElementCollection { public UrlsCollection() { UrlConfigElement url = (UrlConfigElement)CreateNewElement(); // Add the element to the collection. Add(url); } public override ConfigurationElementCollectionType CollectionType { get { return ConfigurationElementCollectionType.AddRemoveClearMap; } } protected override ConfigurationElement CreateNewElement() { return new UrlConfigElement(); } protected override ConfigurationElement CreateNewElement( string elementName) { return new UrlConfigElement(elementName); } protected override Object GetElementKey(ConfigurationElement element) { return ((UrlConfigElement)element).Name; } public new string AddElementName { get { return base.AddElementName; } set { base.AddElementName = value; } } public new string ClearElementName { get { return base.ClearElementName; } set { base.AddElementName = value; } } public new string RemoveElementName { get { return base.RemoveElementName; } } public new int Count { get { return base.Count; } } public UrlConfigElement this[int index] { get { return (UrlConfigElement)BaseGet(index); } set { if (BaseGet(index) != null) { BaseRemoveAt(index); } BaseAdd(index, value); } } new public UrlConfigElement this[string Name] { get { return (UrlConfigElement)BaseGet(Name); } } public int IndexOf(UrlConfigElement url) { return BaseIndexOf(url); } public void Add(UrlConfigElement url) { BaseAdd(url); // Add custom code here. } protected override void BaseAdd(ConfigurationElement element) { BaseAdd(element, false); // Add custom code here. } public void Remove(UrlConfigElement url) { if (BaseIndexOf(url) >= 0) BaseRemove(url.Name); } public void RemoveAt(int index) { BaseRemoveAt(index); } public void Remove(string name) { BaseRemove(name); } public void Clear() { BaseClear(); // Add custom code here. } } }
L'extrait de configuration suivant est utilisé dans l'exemple précédent.
<?xml version="1.0" encoding="utf-8"?>
<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 lockAllElementsExcept="urls">
<internal
name="Microsoft" url="http://www.microsoft.com" port="0" />
<urls>
<clear />
<add
name="Microsoft" url="http://www.microsoft.com" port="0"
lockAllAttributesExcept="port" />
<add
name="Contoso" url="http://www.contoso.com/" port="8080"
lockAllAttributesExcept="port" lockItem="true" />
</urls>
</MyUrls>
</configuration>
System.Configuration.ConfigurationElement
System.Configuration.ConfigurationElementCollection
System.Configuration.ConnectionStringSettingsCollection
System.Configuration.KeyValueConfigurationCollection
System.Configuration.NameValueConfigurationCollection
System.Configuration.ProviderSettingsCollection
System.Configuration.SettingElementCollection
System.Net.Configuration.AuthenticationModuleElementCollection
System.Net.Configuration.BypassElementCollection
System.Net.Configuration.ConnectionManagementElementCollection
System.Net.Configuration.WebRequestModuleElementCollection
System.Runtime.Serialization.Configuration.DeclaredTypeElementCollection
System.Runtime.Serialization.Configuration.ParameterElementCollection
System.Runtime.Serialization.Configuration.TypeElementCollection
System.ServiceModel.Configuration.ServiceModelConfigurationElementCollection<ConfigurationElementType>
System.Web.Configuration.AssemblyCollection
System.Web.Configuration.AuthorizationRuleCollection
System.Web.Configuration.BufferModesCollection
System.Web.Configuration.BuildProviderCollection
System.Web.Configuration.ClientTargetCollection
System.Web.Configuration.CodeSubDirectoriesCollection
System.Web.Configuration.CompilerCollection
System.Web.Configuration.ConvertersCollection
System.Web.Configuration.CustomErrorCollection
System.Web.Configuration.EventMappingSettingsCollection
System.Web.Configuration.ExpressionBuilderCollection
System.Web.Configuration.FormsAuthenticationUserCollection
System.Web.Configuration.HttpHandlerActionCollection
System.Web.Configuration.HttpModuleActionCollection
System.Web.Configuration.NamespaceCollection
System.Web.Configuration.OutputCacheProfileCollection
System.Web.Configuration.ProfileGroupSettingsCollection
System.Web.Configuration.ProfilePropertySettingsCollection
System.Web.Configuration.ProfileSettingsCollection
System.Web.Configuration.RuleSettingsCollection
System.Web.Configuration.SqlCacheDependencyDatabaseCollection
System.Web.Configuration.TagMapCollection
System.Web.Configuration.TagPrefixCollection
System.Web.Configuration.TransformerInfoCollection
System.Web.Configuration.TrustLevelCollection
System.Web.Configuration.UrlMappingCollection
System.Web.Mobile.DeviceFilterElementCollection
System.Web.Services.Configuration.ProtocolElementCollection
System.Web.Services.Configuration.SoapExtensionTypeElementCollection
System.Web.Services.Configuration.TypeElementCollection
System.Web.Services.Configuration.WsiProfilesElementCollection
System.Web.UI.MobileControls.ControlElementCollection
System.Web.UI.MobileControls.DeviceElementCollection
System.Workflow.Runtime.Configuration.WorkflowRuntimeServiceElementCollection
System.Xml.Serialization.Configuration.SchemaImporterExtensionElementCollection
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Remarque :