ConfigurationSection, classe (System.Configuration)

Bibliothèque de classes .NET Framework 
ConfigurationSection, classe 

Remarque : cette classe est nouvelle dans le .NET Framework version 2.0.

Représente une section dans un fichier de configuration.

Espace de noms : System.Configuration
Assembly : System.Configuration (dans system.configuration.dll)

SyntaxeSyntaxe


Visual Basic (Déclaration)
Public MustInherit Class ConfigurationSection
    Inherits ConfigurationElement


Visual Basic (Utilisation)
Dim instance As ConfigurationSection


C#
public abstract class ConfigurationSection : ConfigurationElement


C++
public ref class ConfigurationSection abstract : public ConfigurationElement


J#
public abstract class ConfigurationSection extends ConfigurationElement


JScript
public abstract class ConfigurationSection extends ConfigurationElement
NotesNotes

Vous utilisez ConfigurationSection pour implémenter un type de section personnalisé. Étendez la classe ConfigurationSection pour fournir une gestion personnalisée et un accès par programme aux sections de configuration personnalisées.

Une section enregistre son type de gestion avec une entrée dans configSections.

Reportez-vous à l'extrait de fichier de configuration dans l'exemple ci-dessous.

RemarqueRemarque

Dans les versions antérieures du .NET Framework, les gestionnaires de section de configuration étaient utilisés pour apporter des modifications aux paramètres de configuration par programme. Désormais, toutes les sections de configuration par défaut sont représentées par des classes qui étendent la classe ConfigurationSection.

Remarques à l'attention des implémenteurs Vous pouvez utiliser un modèle de codage déclaratif (attribué) ou de programmation pour créer des sections de configuration personnalisées.

  • Modèle de programmation. Ce modèle nécessite pour chaque attribut de section la création d'une propriété afin d'obtenir et/ou définir sa valeur et de l'ajouter au sac de propriétés interne de la classe de base ConfigurationElement sous-jacente.

  • Modèle déclaratif. Ce modèle plus simple, également appelé modèle attribué, vous permet de définir un attribut de section au moyen d'une propriété et de le décorer 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. Avec ces informations, obtenues par réflexion, le système de configuration ASP.NET crée pour vous les objets de propriétés de section et exécute l'initialisation requise.

Configuration est la classe qui autorise l'accès par programme pour modifier les fichiers de configuration. Vous pouvez accéder à ces fichiers pour lire ou écrire comme expliqué ci-dessous.
  • Lecture. Vous utilisez GetSection ou GetSectionGroup pour lire les informations de configuration. Notez que l'utilisateur ou le processus qui lit doit avoir les autorisations suivantes :

    • Autorisation en lecture sur le fichier de configuration au niveau de la hiérarchie de configuration en cours.

    • Autorisations en lecture sur tous les fichiers de configuration parents.

Si votre application requiert un accès en lecture seule à sa propre configuration et qu'il s'agit d'une application Web, il est recommandé d'utiliser les méthodes surchargées GetSection. S'il s'agit d'une application cliente, utilisez la méthode GetSection. Ces méthodes donnent accès aux valeurs de configuration mises en cache pour l'application actuelle et offrent ainsi de meilleures performances que la classe Configuration.
RemarqueRemarque

Si vous utilisez une méthode GetSection statique qui utilise un paramètre Path, ce paramètre doit faire référence à l'application dans laquelle le code s'exécute ; sinon, il est ignoré et les informations de configuration pour l'application en cours d'exécution sont retournées.

  • Écriture. Vous utilisez l'une des méthodes Save pour écrire des informations de configuration. Notez que l'utilisateur ou le processus qui écrit doit avoir les autorisations suivantes :

    • Autorisation en écriture sur le fichier de configuration et le répertoire au niveau de la hiérarchie de configuration en cours.

    • Autorisations en lecture sur tous les fichiers de configuration.

ExempleExemple

L'exemple suivant montre comment implémenter une section personnalisée par programme.

Reportez-vous à ConfigurationElement pour obtenir un exemple complet illustrant l'implémentation et l'utilisation d'une section personnalisée implémentée à l'aide du modèle par attributs.



Visual Basic
' Define a custom section.
' The CustomSection type alows to define a custom section 
' programmatically.

NotInheritable Public Class CustomSection
   Inherits ConfigurationSection
   ' The collection (property bag) that conatains 
   ' the section properties.
   Private Shared _Properties As ConfigurationPropertyCollection
   
   ' Internal flag to disable 
   ' property setting.
   Private Shared _ReadOnly As Boolean
   
   ' The FileName property.
    Private Shared _FileName As New ConfigurationProperty( _
    "fileName", GetType(String), _
    "default.txt", _
    ConfigurationPropertyOptions.IsRequired)
   
   ' The MasUsers property.
    Private Shared _MaxUsers As New ConfigurationProperty( _
    "maxUsers", GetType(Long), _
    CType(1000, Long), _
    ConfigurationPropertyOptions.None)
   
   ' The MaxIdleTime property.
    Private Shared _MaxIdleTime As New ConfigurationProperty( _
    "maxIdleTime", GetType(TimeSpan), _
    TimeSpan.FromMinutes(5), _
    ConfigurationPropertyOptions.IsRequired)
   
   
   ' CustomSection constructor.
   Public Sub New()
      ' Property initialization
        _Properties = _
        New ConfigurationPropertyCollection()
      
      _Properties.Add(_FileName)
      _Properties.Add(_MaxUsers)
      _Properties.Add(_MaxIdleTime)
   End Sub 'New
   
   
   ' This is a key customization. 
   ' It returns the initialized property bag.
    Protected Overrides ReadOnly Property Properties() _
    As ConfigurationPropertyCollection
        Get
            Return _Properties
        End Get
    End Property
   
   
   
   Private Shadows ReadOnly Property IsReadOnly() As Boolean
      Get
         Return _ReadOnly
      End Get
   End Property
   
   
   ' Use this to disable property setting.
   Private Sub ThrowIfReadOnly(propertyName As String)
      If IsReadOnly Then
            Throw New ConfigurationErrorsException( _
            "The property " + propertyName + " is read only.")
      End If
   End Sub 'ThrowIfReadOnly
   
   
   
   ' Customizes the use of CustomSection
    ' by setting _ReadOnly to false.
   ' Remember you must use it along with ThrowIfReadOnly.
   Protected Overrides Function GetRuntimeObject() As Object
      ' To enable property setting just assign true to
      ' the following flag.
      _ReadOnly = True
      Return MyBase.GetRuntimeObject()
   End Function 'GetRuntimeObject
   
   
    <StringValidator( _
    InvalidCharacters:=" ~!@#$%^&*()[]{}/;'""|\", _
    MinLength:=1, MaxLength:=60)> _
    Public Property FileName() As String
        Get
            Return CStr(Me("fileName"))
        End Get
        Set(ByVal value As String)
            ' With this you disable the setting.
            ' Renemmber that the _ReadOnly flag must
            ' be set to true in the GetRuntimeObject.
            ThrowIfReadOnly("FileName")
            Me("fileName") = value
        End Set
    End Property
   
   
    <LongValidator( _
    MinValue:=1, MaxValue:=1000000, _
    ExcludeRange:=False)> _
    Public Property MaxUsers() As Long
        Get
            Return Fix(Me("maxUsers"))
        End Get
        Set(ByVal value As Long)
            Me("maxUsers") = Value
        End Set
    End Property
   
   
    <TimeSpanValidator( _
    MinValueString:="0:0:30", _
    MaxValueString:="5:00:0", ExcludeRange:=False)> _
    Public Property MaxIdleTime() As TimeSpan
        Get
            Return CType(Me("maxIdleTime"), TimeSpan)
        End Get
        Set(ByVal value As TimeSpan)
            Me("maxIdleTime") = Value
        End Set
    End Property
End Class 'CustomSection 


C#
// Define a custom section.
// The CustomSection type alows to define a custom section 
// programmatically.
public sealed class CustomSection : 
    ConfigurationSection
{
    // The collection (property bag) that conatains 
    // the section properties.
    private static ConfigurationPropertyCollection _Properties;
    
    // Internal flag to disable 
    // property setting.
    private static bool _ReadOnly;

    // 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;
        }
    }


    private new bool IsReadOnly
    {
        get
        {
            return _ReadOnly;
        }
    }

    // Use this to disable property setting.
    private void ThrowIfReadOnly(string propertyName)
    {
        if (IsReadOnly)
            throw new ConfigurationErrorsException(
                "The property " + propertyName + " is read only.");
    }


    // Customizes the use of CustomSection
    // by setting _ReadOnly to false.
    // Remember you must use it along with ThrowIfReadOnly.
    protected override object GetRuntimeObject()
    {
        // To enable property setting just assign true to
        // the following flag.
        _ReadOnly = true;
        return base.GetRuntimeObject();
    }


    [StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
        MinLength = 1, MaxLength = 60)]
    public string FileName
    {
        get
        {
            return (string)this["fileName"];
        }
        set
        {
            // With this you disable the setting.
            // Renemmber that the _ReadOnly flag must
            // be set to true in the GetRuntimeObject.
            ThrowIfReadOnly("FileName");
            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;
        }
    }
   
    
}

Il s'agit d'un extrait du fichier de configuration tel qu'il s'applique à l'exemple précédent.

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

<configuration>

<configSections>

<section name="CustomSection" type="Samples.AspNet, 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>

Hiérarchie d'héritageHiérarchie d'héritage
System.Object
   System.Configuration.ConfigurationElement
    System.Configuration.ConfigurationSection
       Classes dérivées
Sécurité des threadsSécurité des threads
Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Plates-formesPlates-formes

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

Informations de versionInformations de version

.NET Framework

Prise en charge dans : 2.0
Voir aussiVoir aussi

Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/system.configuration.configurationsection.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

8 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-6574
Document créé le 30/10/06 03:54, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-system.configuration.configurationsection.html Document affiché 9 fois ce mois de Mai.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,45 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
Il faut toujours se réserver le droit de rire le lendemain de ses idées de la veille.

Napoléon Bonaparte
 
l'infobrol
Nous sommes le Jeudi 31 Mai 2012, 18:55, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)