Lire en anglais

Partager via


ConfigurationSectionCollection Classe

Définition

Représente une collection de sections associées dans un fichier de configuration.

C#
public sealed class ConfigurationSectionCollection : System.Collections.Specialized.NameObjectCollectionBase
C#
[System.Serializable]
public sealed class ConfigurationSectionCollection : System.Collections.Specialized.NameObjectCollectionBase
Héritage
ConfigurationSectionCollection
Attributs

Exemples

L'exemple de code suivant montre comment utiliser la classe ConfigurationSectionCollection.

C#
using System;
using System.Configuration;
using System.Collections;

namespace Samples.AspNet.Configuration
{

    // Define a custom section programmatically.
    public sealed class CustomSection :
        ConfigurationSection
    {
        // The collection (property bag) that contains 
        // the section properties.
        private static ConfigurationPropertyCollection _Properties;

        // The FileName property.
        private static readonly ConfigurationProperty _FileName =
            new ConfigurationProperty("fileName",
            typeof(string), "default.txt",
            ConfigurationPropertyOptions.IsRequired);

        // The MasUsers property.
        private static readonly ConfigurationProperty _MaxUsers =
            new ConfigurationProperty("maxUsers",
            typeof(long), (long)1000,
            ConfigurationPropertyOptions.None);

        // The MaxIdleTime property.
        private static readonly ConfigurationProperty _MaxIdleTime =
            new ConfigurationProperty("maxIdleTime",
            typeof(TimeSpan), TimeSpan.FromMinutes(5),
            ConfigurationPropertyOptions.IsRequired);

        // CustomSection constructor.
        public CustomSection()
        {
            // Property initialization
            _Properties =
                new ConfigurationPropertyCollection();

            _Properties.Add(_FileName);
            _Properties.Add(_MaxUsers);
            _Properties.Add(_MaxIdleTime);
        }

        // This is a key customization. 
        // It returns the initialized property bag.
        protected override ConfigurationPropertyCollection Properties
        {
            get
            {
                return _Properties;
            }
        }

        [StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
            MinLength = 1, MaxLength = 60)]
        public string FileName
        {
            get
            {
                return (string)this["fileName"];
            }
            set
            {

                this["fileName"] = value;
            }
        }

        [LongValidator(MinValue = 1, MaxValue = 1000000,
            ExcludeRange = false)]
        public long MaxUsers
        {
            get
            {
                return (long)this["maxUsers"];
            }
            set
            {
                this["maxUsers"] = value;
            }
        }

        [TimeSpanValidator(MinValueString = "0:0:30",
            MaxValueString = "5:00:0",
            ExcludeRange = false)]
        public TimeSpan MaxIdleTime
        {
            get
            {
                return (TimeSpan)this["maxIdleTime"];
            }
            set
            {
                this["maxIdleTime"] = value;
            }
        }
    }

    class UsingCustomSectionCollection
    {

        // Create a custom section.
        static void CreateSection()
        {
            try
            {

                CustomSection customSection;

                // Get the current configuration file.
                System.Configuration.Configuration config =
                        ConfigurationManager.OpenExeConfiguration(
                        ConfigurationUserLevel.None);

                // Create the section entry  
                // in the <configSections> and the 
                // related target section in <configuration>.
                if (config.Sections["CustomSection"] == null)
                {
                    customSection = new CustomSection();
                    config.Sections.Add("CustomSection", customSection);
                    customSection.SectionInformation.ForceSave = true;
                    config.Save(ConfigurationSaveMode.Full);
                }
            }
            catch (ConfigurationErrorsException err)
            {
                Console.WriteLine(err.ToString());
            }
        }

        static void GetAllKeys()
        {

            try
            {
                System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(
                ConfigurationUserLevel.None);

                ConfigurationSectionCollection sections =
                    config.Sections;

                foreach (string key in sections.Keys)
                {
                    Console.WriteLine(
                     "Key value: {0}", key);
                }
            }
            catch (ConfigurationErrorsException err)
            {
                Console.WriteLine(err.ToString());
            }
        }


        static void Clear()
        {

            try
            {
                System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(
                ConfigurationUserLevel.None);

                config.Sections.Clear();

                config.Save(ConfigurationSaveMode.Full);
            }
            catch (ConfigurationErrorsException err)
            {
                Console.WriteLine(err.ToString());
            }
        }


        static void GetSection()
        {

            try
            {
                CustomSection customSection =
                    ConfigurationManager.GetSection(
                    "CustomSection") as CustomSection;

                if (customSection == null)
                    Console.WriteLine(
                        "Failed to load CustomSection.");
                else
                {
                    // Display section information
                    Console.WriteLine("Defaults:");
                    Console.WriteLine("File Name:       {0}",
                        customSection.FileName);
                    Console.WriteLine("Max Users:       {0}",
                        customSection.MaxUsers);
                    Console.WriteLine("Max Idle Time:   {0}",
                        customSection.MaxIdleTime);
                }
            }
            catch (ConfigurationErrorsException err)
            {
                Console.WriteLine(err.ToString());
            }
        }

        static void GetEnumerator()
        {

            try
            {
                System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(
                ConfigurationUserLevel.None);

                ConfigurationSectionCollection sections =
                    config.Sections;

                IEnumerator secEnum =
                    sections.GetEnumerator();

                int i = 0;
                while (secEnum.MoveNext())
                {
                    string setionName = sections.GetKey(i);
                    Console.WriteLine(
                        "Section name: {0}", setionName);
                    i += 1;
                }
            }
            catch (ConfigurationErrorsException err)
            {
                Console.WriteLine(err.ToString());
            }
        }

        static void GetKeys()
        {

            try
            {
                System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(
                ConfigurationUserLevel.None);

                ConfigurationSectionCollection sections =
                    config.Sections;

                foreach (string key in sections.Keys)
                {

                    Console.WriteLine(
                     "Key value: {0}", key);
                }
            }
            catch (ConfigurationErrorsException err)
            {
                Console.WriteLine(err.ToString());
            }
        }


        static void GetItems()
        {

            try
            {
                System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(
                ConfigurationUserLevel.None);

                ConfigurationSectionCollection sections =
                    config.Sections;

                ConfigurationSection section1 =
                    sections["runtime"];

                ConfigurationSection section2 =
                    sections[0];

                Console.WriteLine(
                     "Section1: {0}", section1.SectionInformation.Name);

                Console.WriteLine(
                    "Section2: {0}", section2.SectionInformation.Name);
            }
            catch (ConfigurationErrorsException err)
            {
                Console.WriteLine(err.ToString());
            }
        }


        static void Remove()
        {

            try
            {
                System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(
                ConfigurationUserLevel.None);

                CustomSection customSection =
                    config.GetSection(
                    "CustomSection") as CustomSection;

                if (customSection != null)
                {
                    config.Sections.Remove("CustomSection");
                    customSection.SectionInformation.ForceSave = true;
                    config.Save(ConfigurationSaveMode.Full);
                }
                else
                    Console.WriteLine(
                        "CustomSection does not exists.");
            }
            catch (ConfigurationErrorsException err)
            {
                Console.WriteLine(err.ToString());
            }
        }

        static void AddSection()
        {

            try
            {
                System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(
                ConfigurationUserLevel.None);

                CustomSection customSection =
                    new CustomSection();

                string index =
                    config.Sections.Count.ToString();

                customSection.FileName =
                    "newFile" + index + ".txt";

                string sectionName = "CustomSection" + index;

                TimeSpan ts = new TimeSpan(0, 15, 0);
                customSection.MaxIdleTime = ts;
                customSection.MaxUsers = 100;

                config.Sections.Add(sectionName, customSection);
                customSection.SectionInformation.ForceSave = true;
                config.Save(ConfigurationSaveMode.Full);
            }
            catch (ConfigurationErrorsException err)
            {
                Console.WriteLine(err.ToString());
            }
        }

        // Exercise the collection.
        // Uncomment the function you want to exercise.
        // Start with CreateSection().
        static void Main(string[] args)
        {
            CreateSection();
            // AddSection();
            // GetSection();
            // GetEnumerator();
            // GetAllKeys();
            // GetKeys();
            // GetItems();

            // Remove();
            // Clear();
        }
    }
}

L’exemple suivant est un extrait du fichier de configuration utilisé par l’exemple précédent.

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

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

  </configSections>  

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

</configuration>  

Remarques

Utilisez la ConfigurationSectionCollection classe pour itérer au sein d’une collection d’objets ConfigurationSection . Vous pouvez accéder à cette collection d’objets à l’aide de la Sections propriété ou de la Sections propriété .

La ConfigurationSectionCollection classe est également utilisée dans la création de types personnalisés qui étendent la ConfigurationSection classe.

Propriétés

Count

Obtient le nombre de sections contenues dans cet objet ConfigurationSectionCollection.

Count

Obtient le nombre de paires clé/valeur contenues dans l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
IsReadOnly

Obtient ou définit une valeur indiquant si l'instance du NameObjectCollectionBase est en lecture seule.

(Hérité de NameObjectCollectionBase)
Item[Int32]

Obtient l'objet ConfigurationSection spécifié.

Item[String]

Obtient l'objet ConfigurationSection spécifié.

Keys

Obtient les clés de tous les objets ConfigurationSection contenus dans cet objet ConfigurationSectionCollection.

Keys

Obtient une instance NameObjectCollectionBase.KeysCollection qui contient toutes les clés dans l'instance NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)

Méthodes

Add(String, ConfigurationSection)

Ajoute un objet ConfigurationSection à l’objet ConfigurationSectionCollection.

BaseAdd(String, Object)

Ajoute une entrée contenant la clé et la valeur spécifiées dans l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
BaseClear()

Supprime toutes les entrées de l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
BaseGet(Int32)

Obtient la valeur de l'entrée à l'index spécifié de l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
BaseGet(String)

Obtient la valeur de la première entrée ayant la clé spécifiée dans l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
BaseGetAllKeys()

Retourne un tableau de type String qui contient toutes les clés dans l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
BaseGetAllValues()

Retourne un tableau d'éléments Object qui contient toutes les valeurs présentes dans l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
BaseGetAllValues(Type)

Retourne un tableau du type spécifié qui contient toutes les valeurs présentes dans l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
BaseGetKey(Int32)

Obtient la clé de l'entrée à l'index spécifié de l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
BaseHasKeys()

Obtient une valeur indiquant si l'instance du NameObjectCollectionBase contient des entrées dont les clés ne sont pas null.

(Hérité de NameObjectCollectionBase)
BaseRemove(String)

Supprime les entrées contenant la clé spécifiée dans l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
BaseRemoveAt(Int32)

Supprime les entrées à l'index spécifié de l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
BaseSet(Int32, Object)

Définit la valeur de l'entrée à l'index spécifié de l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
BaseSet(String, Object)

Définit la valeur de la première entrée contenant la clé spécifiée dans l'instance du NameObjectCollectionBase, si elle existe ; sinon, ajoute une entrée contenant la clé et la valeur spécifiées dans l'instance du NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
Clear()

Efface cet objet ConfigurationSectionCollection.

CopyTo(ConfigurationSection[], Int32)

Copie cet objet ConfigurationSectionCollection dans un tableau.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Get(Int32)

Obtient l'objet ConfigurationSection spécifié contenu dans cet objet ConfigurationSectionCollection.

Get(String)

Obtient l'objet ConfigurationSection spécifié contenu dans cet objet ConfigurationSectionCollection.

GetEnumerator()

Obtient un énumérateur qui peut itérer au sein de cet objet ConfigurationSectionCollection.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetKey(Int32)

Obtient la clé de l'objet ConfigurationSection spécifié contenu dans cet objet ConfigurationSectionCollection.

GetObjectData(SerializationInfo, StreamingContext)
Obsolète.

Utilisé par le système pendant la sérialisation.

GetObjectData(SerializationInfo, StreamingContext)
Obsolète.

Implémente l'interface ISerializable et retourne les données nécessaires pour sérialiser l'instance NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnDeserialization(Object)

Implémente l’interface ISerializable et déclenche l’événement de désérialisation une fois la désérialisation terminée.

(Hérité de NameObjectCollectionBase)
Remove(String)

Supprime l'objet ConfigurationSection spécifié de cet objet ConfigurationSectionCollection.

RemoveAt(Int32)

Supprime l'objet ConfigurationSection spécifié de cet objet ConfigurationSectionCollection.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

ICollection.CopyTo(Array, Int32)

Copie l'ensemble de l'objet NameObjectCollectionBase vers un objet Array unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.

(Hérité de NameObjectCollectionBase)
ICollection.IsSynchronized

Obtient une valeur indiquant si l’accès à l’objet NameObjectCollectionBase est synchronisé (thread-safe).

(Hérité de NameObjectCollectionBase)
ICollection.SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l’accès à l’objet NameObjectCollectionBase.

(Hérité de NameObjectCollectionBase)

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

S’applique à

Produit Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Voir aussi