ConfigurationSection Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente une section dans un fichier de configuration.
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
- Dérivé
Exemples
L’exemple suivant montre comment implémenter une section personnalisée par programmation.
Pour obtenir un exemple complet montrant comment implémenter et utiliser une section personnalisée implémentée à l’aide du modèle à attributs, consultez 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.
<?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é. Étendez la ConfigurationSection classe pour fournir une gestion personnalisée et un accès par programmation aux sections de configuration personnalisée. Pour plus d’informations sur l’utilisation des sections de configuration personnalisée, consultez How to : Create Custom Configuration Sections Using ConfigurationSection.
Une section enregistre son type de gestion avec une entrée dans l’élément configSections
. Pour obtenir un exemple, consultez l’extrait de fichier de configuration présenté dans la section Exemple.
Notes
Dans les versions précédentes du .NET Framework, les gestionnaires de section de configuration étaient utilisés pour apporter des modifications aux paramètres de configuration par programmation. À présent, toutes les sections de configuration par défaut sont représentées par des classes qui étendent la ConfigurationSection classe.
Notes pour les responsables de l’implémentation
Vous pouvez utiliser un modèle de codage programmatique ou déclaratif (avec attributs) pour créer des sections de configuration personnalisées :
Modèle programmatique. Ce modèle nécessite 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 de la classe de base sous-jacente ConfigurationElement .
Modèle déclaratif. Ce modèle plus simple, également appelé modèle à attributs, vous permet de définir un attribut de section à l’aide d’une propriété et de le décorer avec des attributs. Ces attributs indiquent au système de configuration ASP.NET les types de 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 les objets de propriété de section et effectue l’initialisation requise.
La Configuration classe autorise l’accès par programmation pour la modification des fichiers de configuration. Vous pouvez accéder à ces fichiers pour la lecture ou l’écriture comme suit :
Lecture. Vous utilisez GetSection(String) ou GetSectionGroup(String) pour lire les informations de configuration. Notez que l’utilisateur ou le processus qui lit doit disposer des autorisations suivantes :
Autorisation de lecture sur le fichier de configuration au niveau de la hiérarchie de configuration actuelle.
Autorisations de lecture sur tous les fichiers de configuration parent.
Si votre application a besoin d’un accès en lecture seule à sa propre configuration, il est recommandé d’utiliser les GetSection méthodes surchargées dans le cas des applications web, ou la GetSection(String) méthode dans le cas des applications clientes.
Ces méthodes permettent d’accéder aux valeurs de configuration mises en cache pour l’application actuelle, qui offre de meilleures performances que la Configuration classe .
Remarque : Si vous utilisez une méthode statique GetSection
qui prend 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 de l’application en cours d’exécution sont retournées.
Écriture. Vous utilisez l’une des méthodes pour écrire des Save informations de configuration. Notez que l’utilisateur ou le processus qui écrit doit disposer des autorisations suivantes :
Autorisation d’écriture sur le fichier de configuration et le répertoire au niveau de la hiérarchie de configuration actuelle.
Autorisations de lecture sur tous les fichiers de configuration.
Constructeurs
ConfigurationSection() |
Initialise une nouvelle instance de la classe ConfigurationSection. |
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. (Hérité de ConfigurationElement) |
ElementInformation |
Obtient un objet ElementInformation qui contient les fonctionnalités et informations non personnalisables de l'objet ConfigurationElement. (Hérité de ConfigurationElement) |
ElementProperty |
Obtient l'objet ConfigurationElementProperty qui représente l'objet ConfigurationElement lui-même. (Hérité de ConfigurationElement) |
EvaluationContext |
Obtient l'objet ContextInformation pour l'objet ConfigurationElement. (Hérité de ConfigurationElement) |
HasContext |
Obtient une valeur qui indique si la propriété CurrentConfiguration a la valeur |
Item[ConfigurationProperty] |
Obtient ou définit une propriété ou un attribut de cet élément de configuration. (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. (Hérité de ConfigurationElement) |
LockAllAttributesExcept |
Obtient la collection d'attributs verrouillés. (Hérité de ConfigurationElement) |
LockAllElementsExcept |
Obtient la collection d'éléments verrouillés. (Hérité de ConfigurationElement) |
LockAttributes |
Obtient la collection d'attributs verrouillés. (Hérité de ConfigurationElement) |
LockElements |
Obtient la collection d'éléments verrouillés. (Hérité de ConfigurationElement) |
LockItem |
Obtient ou définit une valeur indiquant si l'élément est verrouillé. (Hérité de ConfigurationElement) |
Properties |
Obtient la collection de propriétés. (Hérité de ConfigurationElement) |
SectionInformation |
Obtient un objet SectionInformation qui contient les fonctionnalités et informations non personnalisables de l'objet ConfigurationSection. |
Méthodes
DeserializeElement(XmlReader, Boolean) |
Lit du XML à partir du fichier de configuration. (Hérité de ConfigurationElement) |
DeserializeSection(XmlReader) |
Lit du XML à partir du fichier de configuration. |
Equals(Object) |
Compare l’instance de ConfigurationElement actuelle à l’objet spécifié. (Hérité de ConfigurationElement) |
GetHashCode() |
Obtient une valeur unique représentant l'instance actuelle de ConfigurationElement. (Hérité de ConfigurationElement) |
GetRuntimeObject() |
Retourne un objet personnalisé en cas de substitution dans une classe dérivée. |
GetTransformedAssemblyString(String) |
Retourne la version transformée du nom de l'assembly spécifié. (Hérité de ConfigurationElement) |
GetTransformedTypeString(String) |
Retourne la version transformée du nom de type spécifié. (Hérité de ConfigurationElement) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
Init() |
Rétablit l’état initial de l’objet ConfigurationElement. (Hérité de ConfigurationElement) |
InitializeDefault() |
Utilisé pour initialiser un jeu de valeurs par défaut pour l'objet ConfigurationElement. (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. |
IsReadOnly() |
Obtient une valeur indiquant si l’objet ConfigurationElement est en lecture seule. (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. (Hérité de ConfigurationElement) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
OnDeserializeUnrecognizedAttribute(String, String) |
Obtient une valeur indiquant si un attribut inconnu est rencontré pendant la désérialisation. (Hérité de ConfigurationElement) |
OnDeserializeUnrecognizedElement(String, XmlReader) |
Obtient une valeur indiquant si un élément inconnu est rencontré pendant la désérialisation. (Hérité de ConfigurationElement) |
OnRequiredPropertyNotFound(String) |
Lève une exception lorsqu'une propriété requise est introuvable. (Hérité de ConfigurationElement) |
PostDeserialize() |
Appelé après la désérialisation. (Hérité de ConfigurationElement) |
PreSerialize(XmlWriter) |
Appelé avant la sérialisation. (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. (Hérité de ConfigurationElement) |
ResetModified() |
Réinitialise la valeur de la méthode IsModified() à |
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. (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. |
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. (Hérité de ConfigurationElement) |
SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Affecte la valeur spécifiée à une propriété. (Hérité de ConfigurationElement) |
SetReadOnly() |
Définit la propriété IsReadOnly() pour l'objet ConfigurationElement et tous les sous-éléments. (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. |
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. |
ShouldSerializeSectionInTargetVersion(FrameworkName) |
Indique si l’instance actuelle ConfigurationSection 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. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) |
Modifie l'objet ConfigurationElement pour supprimer toutes les valeurs qui ne doivent pas être enregistrées. (Hérité de ConfigurationElement) |