ConfigurationSection Classe

Définition

Représente une section dans un fichier de configuration.Represents a section within a configuration file.

public ref class ConfigurationSection abstract : System::Configuration::ConfigurationElement
public abstract class ConfigurationSection : System.Configuration.ConfigurationElement
type ConfigurationSection = class
    inherit ConfigurationElement
Public MustInherit Class ConfigurationSection
Inherits ConfigurationElement
Héritage
ConfigurationSection
Dérivé

Exemples

L’exemple suivant montre comment implémenter une section personnalisée par programmation.The following example shows how to implement a custom section programmatically.

Pour obtenir un exemple complet qui montre comment implémenter et utiliser une section personnalisée implémentée à l’aide du ConfigurationElementmodèle avec attributs, consultez.For a complete example that shows how to implement and use a custom section implemented using the attributed model, see ConfigurationElement.

// Define a custom section.
// The CustomSection type allows to define a custom section 
// programmatically.
public sealed class CustomSection : 
    ConfigurationSection
{
    // The collection (property bag) that contains 
    // 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 MaxUsers 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.
            // Remember 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;
        }
    }
   
    
}
' Define a custom section.
' The CustomSection type allows to define a custom section 
' programmatically.

NotInheritable Public Class CustomSection
   Inherits ConfigurationSection
   ' The collection (property bag) that contains 
   ' 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 MaxUsers 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
   
   
   ' 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
   
   
   
   ' 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.
            ' Remember 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

L’exemple suivant est un extrait du fichier de configuration tel qu’il s’applique à l’exemple précédent.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>

Remarques

Vous utilisez la ConfigurationSection classe pour implémenter un type de section personnalisé.You use the ConfigurationSection class to implement a custom section type. Étendez ConfigurationSection la classe pour fournir une gestion personnalisée et un accès par programmation aux sections de configuration personnalisées.Extend the ConfigurationSection class to provide custom handling and programmatic access to custom configuration sections. Pour plus d’informations sur l’utilisation des sections de configuration personnalisées, consultez Procédure : Créer des sections de configuration personnalisées à l’aide de ConfigurationSection.For information about how use custom configuration sections, see How to: Create Custom Configuration Sections Using ConfigurationSection.

Une section inscrit son type de gestion avec une entrée dans l' configSections élément.A section registers its handling type with an entry in the configSections element. Pour obtenir un exemple, consultez l’extrait de fichier de configuration présenté dans la section exemple.For an example, see the configuration file excerpt shown in the Example section.

Notes

Dans les versions précédentes de la .NET Framework, les gestionnaires de section de configuration étaient utilisés pour modifier les paramètres de configuration par programme.In previous versions of the .NET Framework, configuration section handlers were used to make changes to configuration settings programmatically. Désormais, toutes les sections de configuration par défaut sont représentées par ConfigurationSection des classes qui étendent la classe.Now, all the default configuration sections are represented by classes that extend the ConfigurationSection class.

Notes pour les héritiers

Vous pouvez utiliser un modèle de programmation ou un modèle de codage déclaratif (avec attributs) pour créer des sections de configuration personnalisées :You can use a programmatic or a declarative (attributed) coding model to create custom configuration sections: -Modèle de programmation.- Programmatic model. Ce modèle requiert que, pour chaque attribut de section, vous créez une propriété pour obtenir ou définir sa valeur et l’ajouter au conteneur de propriétés interne ConfigurationElement de la classe de base sous-jacente.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.

-Modèle déclaratif.- Declarative model. Ce modèle plus simple, également appelé modèle avec attributs, vous permet de définir un attribut de section en utilisant une propriété et en la décorant avec des attributs.This simpler model, also called the attributed model, allows you to define a section attribute by using a property and decorating it with attributes. Ces attributs indiquent au système de configuration ASP.NET les types de propriété et leurs valeurs par défaut.These attributes instruct the ASP.NET configuration system about the property types and their default values. Avec ces informations, obtenues par réflexion, le système de configuration ASP.NET crée les objets de propriété de section et exécute l’initialisation requise.With this information, obtained through reflection, the ASP.NET configuration system creates the section property objects and performs the required initialization.

La Configuration classe autorise l’accès par programme pour la modification des fichiers de configuration.The Configuration class allows programmatic access for editing configuration files. Vous pouvez accéder à ces fichiers pour la lecture ou l’écriture comme suit :You can access these files for reading or writing as follows: Écriture.- Reading. Vous utilisez GetSection(String) ou GetSectionGroup(String) pour lire les informations de configuration.You use GetSection(String) or GetSectionGroup(String) to read configuration information. Notez que l’utilisateur ou le processus qui lit doit disposer des autorisations suivantes :Note that the user or process that reads must have the following permissions: -Autorisation de lecture sur le fichier de configuration au niveau de la hiérarchie de configuration actuelle.- Read permission on the configuration file at the current configuration hierarchy level.

-Autorisations de lecture sur tous les fichiers de configuration parents.- Read permissions on all the parent configuration files.

Si votre application a besoin d’un accès en lecture seule à sa propre configuration, il est recommandé GetSection d’utiliser les méthodes surchargées dans le cas d’applications Web GetSection(String) , ou la méthode dans le cas d’applications clientes.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 GetSection(String) method in the case of client applications.

Ces méthodes fournissent l’accès aux valeurs de configuration mises en cache pour l’application actuelle, ce qui offre de Configuration meilleures performances que la classe.These methods provide access to the cached configuration values for the current application, which has better performance than the Configuration class.


Si vous utilisez une méthode GetSection statique qui accepte un path paramètre, le path paramètre doit faire référence à l’application dans laquelle le code s’exécute ; sinon, le paramètre est ignoré et les informations de configuration pour le en cours d’exécution l’application est retournée.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.

Adresses.- Writing. Vous utilisez l’une des Save méthodes pour écrire des informations de configuration.You use one of the Save methods to write configuration information. Notez que l’utilisateur ou le processus qui écrit doit disposer des autorisations suivantes :Note that the user or process that writes must have the following permissions: -Autorisation d’écriture sur le fichier de configuration et le répertoire au niveau de la hiérarchie de configuration actuelle.- Write permission on the configuration file and directory at the current configuration hierarchy level. -Autorisations de lecture sur tous les fichiers de configuration.- Read permissions on all the configuration files.

Constructeurs

ConfigurationSection()

Initialise une nouvelle instance de la classe ConfigurationSection.Initializes a new instance of the ConfigurationSection class.

Propriétés

CurrentConfiguration

Obtient une référence à l'instance Configuration de niveau supérieur qui représente la hiérarchie de configuration à laquelle l'instance ConfigurationElement actuelle appartient.Gets a reference to the top-level Configuration instance that represents the configuration hierarchy that the current ConfigurationElement instance belongs to.

(Hérité de ConfigurationElement)
ElementInformation

Obtient un objet ElementInformation qui contient les fonctionnalités et informations non personnalisables de l'objet ConfigurationElement.Gets an ElementInformation object that contains the non-customizable information and functionality of the ConfigurationElement object.

(Hérité de ConfigurationElement)
ElementProperty

Obtient l'objet ConfigurationElementProperty qui représente l'objet ConfigurationElement lui-même.Gets the ConfigurationElementProperty object that represents the ConfigurationElement object itself.

(Hérité de ConfigurationElement)
EvaluationContext

Obtient l'objet ContextInformation pour l'objet ConfigurationElement.Gets the ContextInformation object for the ConfigurationElement object.

(Hérité de ConfigurationElement)
HasContext

Obtient une valeur qui indique si la propriété CurrentConfiguration a la valeur null.Gets a value that indicates whether the CurrentConfiguration property is null.

(Hérité de ConfigurationElement)
Item[ConfigurationProperty]

Obtient ou définit une propriété ou un attribut de cet élément de configuration.Gets or sets a property or attribute of this configuration element.

(Hérité de ConfigurationElement)
Item[String]

Obtient ou définit une propriété, un attribut ou un élément enfant de cet élément de configuration.Gets or sets a property, attribute, or child element of this configuration element.

(Hérité de ConfigurationElement)
LockAllAttributesExcept

Obtient la collection d'attributs verrouillés.Gets the collection of locked attributes.

(Hérité de ConfigurationElement)
LockAllElementsExcept

Obtient la collection d'éléments verrouillés.Gets the collection of locked elements.

(Hérité de ConfigurationElement)
LockAttributes

Obtient la collection d'attributs verrouillés.Gets the collection of locked attributes.

(Hérité de ConfigurationElement)
LockElements

Obtient la collection d'éléments verrouillés.Gets the collection of locked elements.

(Hérité de ConfigurationElement)
LockItem

Obtient ou définit une valeur indiquant si l'élément est verrouillé.Gets or sets a value indicating whether the element is locked.

(Hérité de ConfigurationElement)
Properties

Obtient la collection de propriétés.Gets the collection of properties.

(Hérité de ConfigurationElement)
SectionInformation

Obtient un objet SectionInformation qui contient les fonctionnalités et informations non personnalisables de l'objet ConfigurationSection.Gets a SectionInformation object that contains the non-customizable information and functionality of the ConfigurationSection object.

Méthodes

DeserializeElement(XmlReader, Boolean)

Lit du XML à partir du fichier de configuration.Reads XML from the configuration file.

(Hérité de ConfigurationElement)
DeserializeSection(XmlReader)

Lit du XML à partir du fichier de configuration.Reads XML from the configuration file.

Equals(Object)

Compare l’instance de ConfigurationElement actuelle à l’objet spécifié.Compares the current ConfigurationElement instance to the specified object.

(Hérité de ConfigurationElement)
GetHashCode()

Obtient une valeur unique représentant l'instance actuelle de ConfigurationElement.Gets a unique value representing the current ConfigurationElement instance.

(Hérité de ConfigurationElement)
GetRuntimeObject()

Retourne un objet personnalisé en cas de substitution dans une classe dérivée.Returns a custom object when overridden in a derived class.

GetTransformedAssemblyString(String)

Retourne la version transformée du nom de l'assembly spécifié.Returns the transformed version of the specified assembly name.

(Hérité de ConfigurationElement)
GetTransformedTypeString(String)

Retourne la version transformée du nom de type spécifié.Returns the transformed version of the specified type name.

(Hérité de ConfigurationElement)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
Init()

Rétablit l’état initial de l’objet ConfigurationElement.Sets the ConfigurationElement object to its initial state.

(Hérité de ConfigurationElement)
InitializeDefault()

Utilisé pour initialiser un jeu de valeurs par défaut pour l'objet ConfigurationElement.Used to initialize a default set of values for the ConfigurationElement object.

(Hérité de ConfigurationElement)
IsModified()

Indique si cet élément de configuration a été modifié depuis son dernier enregistrement ou chargement lorsqu'il est implémenté dans une classe dérivée.Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class.

IsReadOnly()

Obtient une valeur indiquant si l’objet ConfigurationElement est en lecture seule.Gets a value indicating whether the ConfigurationElement object is read-only.

(Hérité de ConfigurationElement)
ListErrors(IList)

Ajoute les erreurs de propriété non valide dans cet objet ConfigurationElement et dans tous les sous-éléments à la liste passée.Adds the invalid-property errors in this ConfigurationElement object, and in all subelements, to the passed list.

(Hérité de ConfigurationElement)
MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
OnDeserializeUnrecognizedAttribute(String, String)

Obtient une valeur indiquant si un attribut inconnu est rencontré pendant la désérialisation.Gets a value indicating whether an unknown attribute is encountered during deserialization.

(Hérité de ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Obtient une valeur indiquant si un élément inconnu est rencontré pendant la désérialisation.Gets a value indicating whether an unknown element is encountered during deserialization.

(Hérité de ConfigurationElement)
OnRequiredPropertyNotFound(String)

Lève une exception lorsqu'une propriété requise est introuvable.Throws an exception when a required property is not found.

(Hérité de ConfigurationElement)
PostDeserialize()

Appelé après la désérialisation.Called after deserialization.

(Hérité de ConfigurationElement)
PreSerialize(XmlWriter)

Appelé avant la sérialisation.Called before serialization.

(Hérité de ConfigurationElement)
Reset(ConfigurationElement)

Rétablit l'état interne de l'objet ConfigurationElement, y compris les verrouillages et les collections de propriétés.Resets the internal state of the ConfigurationElement object, including the locks and the properties collections.

(Hérité de ConfigurationElement)
ResetModified()

Réinitialise la valeur de la méthode IsModified() à false en cas d’implémentation dans une classe dérivée.Resets the value of the IsModified() method to false when implemented in a derived class.

SerializeElement(XmlWriter, Boolean)

Écrit le contenu de cet élément de configuration dans le fichier de configuration lorsqu'il est implémenté dans une classe dérivée.Writes the contents of this configuration element to the configuration file when implemented in a derived class.

(Hérité de ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Crée une chaîne XML contenant un affichage non fusionné de l'objet ConfigurationSection sous la forme d'une section unique à écrire dans un fichier.Creates an XML string containing an unmerged view of the ConfigurationSection object as a single section to write to a file.

SerializeToXmlElement(XmlWriter, String)

Écrit les balises extérieures de cet élément de configuration dans le fichier de configuration lorsqu'il est implémenté dans une classe dérivée.Writes the outer tags of this configuration element to the configuration file when implemented in a derived class.

(Hérité de ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Affecte la valeur spécifiée à une propriété.Sets a property to the specified value.

(Hérité de ConfigurationElement)
SetReadOnly()

Définit la propriété IsReadOnly() pour l'objet ConfigurationElement et tous les sous-éléments.Sets the IsReadOnly() property for the ConfigurationElement object and all subelements.

(Hérité de ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Indique si l'élément spécifié doit être sérialisé lorsque la hiérarchie d'objets de configuration est sérialisée pour la version cible spécifiée du .NET Framework.NET Framework.Indicates whether the specified element should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.NET Framework.

ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Indique si la propriété spécifiée doit être sérialisée lorsque la hiérarchie d'objets de configuration est sérialisée pour la version cible spécifiée du .NET Framework.NET Framework.Indicates whether the specified property should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.NET Framework.

ShouldSerializeSectionInTargetVersion(FrameworkName)

Indique si l'instance ConfigurationSection actuelle doit être sérialisée lorsque la hiérarchie d'objets de configuration est sérialisée pour la version cible spécifiée du .NET Framework.NET Framework.Indicates whether the current ConfigurationSection instance should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.NET Framework.

ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Modifie l'objet ConfigurationElement pour supprimer toutes les valeurs qui ne doivent pas être enregistrées.Modifies the ConfigurationElement object to remove all values that should not be saved.

(Hérité de ConfigurationElement)

S’applique à

Voir aussi