Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

ConfigurationElement, classe

Représente un élément de configuration dans un fichier de configuration.

System.Object
  System.Configuration.ConfigurationElement
    En savoir plus...

Espace de noms :  System.Configuration
Assembly :  System.Configuration (dans System.Configuration.dll)
public abstract class ConfigurationElement

Le type ConfigurationElement expose les membres suivants.

  NomDescription
Méthode protégéeConfigurationElementInitialise une nouvelle instance de la classe ConfigurationElement.
Début
  NomDescription
Propriété publiqueCurrentConfigurationObtient 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.
Propriété publiqueElementInformationObtient un objet ElementInformation qui contient les fonctionnalités et informations non personnalisables de l'objet ConfigurationElement.
Propriété protégéeElementPropertyObtient l'objet ConfigurationElementProperty qui représente l'objet ConfigurationElement lui-même.
Propriété protégéeEvaluationContextObtient l'objet ContextInformation pour l'objet ConfigurationElement.
Propriété protégéeHasContextObtient une valeur qui indique si la propriété d'CurrentConfiguration est null.
Propriété protégéeItem[ConfigurationProperty]Obtient ou définit une propriété ou un attribut de cet élément de configuration.
Propriété protégéeItem[String]Obtient ou définit une propriété, un attribut ou un élément enfant de cet élément de configuration.
Propriété publiqueLockAllAttributesExceptObtient la collection d'attributs verrouillés.
Propriété publiqueLockAllElementsExceptObtient la collection d'éléments verrouillés.
Propriété publiqueLockAttributesObtient la collection d'attributs verrouillés.
Propriété publiqueLockElementsObtient la collection d'éléments verrouillés.
Propriété publiqueLockItemObtient ou définit une valeur indiquant si l'élément est verrouillé.
Propriété protégéePropertiesObtient la collection de propriétés.
Début
  NomDescription
Méthode protégéeDeserializeElementLit le langage XML dans le fichier de configuration.
Méthode publiqueEqualsCompare l'instance de ConfigurationElement actuelle avec l'objet spécifié. (Substitue Object.Equals(Object).)
Méthode protégéeFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiqueGetHashCodeObtient une valeur unique représentant l'instance actuelle de ConfigurationElement. (Substitue Object.GetHashCode().)
Méthode protégéeGetTransformedAssemblyStringRetourne la version transformée du nom de l'assembly spécifié.
Méthode protégéeGetTransformedTypeStringRetourne la version transformée du nom de type spécifié.
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégéeInitRétablit l'état initial de l'objet ConfigurationElement.
Méthode protégéeInitializeDefaultUtilisé pour initialiser un jeu de valeurs par défaut pour l'objet ConfigurationElement.
Méthode protégéeIsModifiedIndique 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.
Méthode publiqueIsReadOnlyObtient une valeur indiquant si l'objet ConfigurationElement est en lecture seule.
Méthode protégéeListErrorsAjoute les erreurs de propriété non valide dans cet objet ConfigurationElement et dans tous les sous-éléments à la liste passée.
Méthode protégéeMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode protégéeOnDeserializeUnrecognizedAttributeObtient une valeur indiquant si un attribut inconnu est rencontré pendant la désérialisation.
Méthode protégéeOnDeserializeUnrecognizedElementObtient une valeur indiquant si un élément inconnu est rencontré pendant la désérialisation.
Méthode protégéeOnRequiredPropertyNotFoundLève une exception lorsqu'une propriété requise est introuvable.
Méthode protégéePostDeserializeAppelé après la désérialisation.
Méthode protégéePreSerializeAppelé avant la sérialisation.
Méthode protégéeResetRétablit l'état interne de l'objet ConfigurationElement, y compris les verrouillages et les collections de propriétés.
Méthode protégéeResetModifiedRéinitialise la valeur de la méthode IsModified à false lorsqu'elle est implémentée dans une classe dérivée.
Méthode protégéeSerializeElementÉ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.
Méthode protégéeSerializeToXmlElementÉ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.
Méthode protégéeSetPropertyValueAffecte la valeur spécifiée à une propriété.
Méthode protégéeSetReadOnlyDéfinit la propriété IsReadOnly pour l'objet ConfigurationElement et tous les sous-éléments.
Méthode publiqueToStringRetourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Méthode protégéeUnmergeModifie l'objet ConfigurationElement pour supprimer toutes les valeurs qui ne doivent pas être enregistrées.
Début

ConfigurationElement est une classe abstraite utilisée pour représenter un élément XML dans un fichier de configuration (tel que Web.config). Un élément dans un fichier de configuration peut contenir zéro, un ou plusieurs éléments enfants.

Étant donné que la classe ConfigurationElement est définie comme abstraite, vous ne pouvez pas en créer d'instance. Vous pouvez uniquement dériver des classes depuis cet élément. Le .NET Framework inclut les classes qui dérivent de la classe ConfigurationElement pour représenter des éléments de configuration XML standard, tels que ConfigurationSection. Vous pouvez également étendre la classe ConfigurationElement pour accéder aux éléments et aux sections de la configuration personnalisée. L'exemple inclus plus loin dans cette rubrique indique comment accéder aux éléments et sections de configuration personnalisés à l'aide des classes personnalisées qui dérivent de ConfigurationElement.

Vous pouvez également étendre les types de configuration standard tels que ConfigurationElement, ConfigurationElementCollection, ConfigurationProperty et ConfigurationSection. Pour plus d'informations, consultez la documentation pour ces classes.

Pour plus d'informations sur l'accès aux informations dans les fichiers de configuration, consultez la classe ConfigurationManager et la classe WebConfigurationManager.

Remarques à l'attention des héritiers

Chaque objet ConfigurationElement crée une collection ConfigurationPropertyCollection interne d'objets ConfigurationProperty qui représentent soit les attributs de l'élément, soit une collection d'éléments enfants.

Les informations et les fonctionnalités non personnalisables sont stockées dans un objet ElementInformation fourni par la propriété ElementInformation.

Vous pouvez utiliser un modèle de codage déclaratif (par attributs) ou de programmation pour créer un élément de configuration personnalisé :

  • Le modèle de programmation nécessite, pour chaque attribut d'élément, la création d'une propriété afin d'obtenir ou de définir sa valeur et de l'ajouter au sac de propriétés interne de la classe de base ConfigurationElement sous-jacente. Pour obtenir un exemple d'utilisation de ce modèle, consultez la classe ConfigurationSection.

  • Le modèle déclaratif le plus simple, également appelé « modèle par attributs », vous permet de définir un attribut d'élément au moyen d'une propriété et de le décorer avec des attributs. Ces attributs donnent au système de configuration ASP.NET des informations sur les types de propriété 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 d'éléments et exécute l'initialisation requise. L'exemple affiché plus loin dans cette rubrique indique comment utiliser ce modèle.

L'exemple de code suivant indique comment implémenter un ConfigurationElement personnalisé comme un élément individuel dans une section personnalisée et comme une collection d'éléments dans une section personnalisée. Cet exemple est constitué des fichiers suivants :

  • Fichier app.config qui contient une section personnalisée nommée MyUrls. Cette section contient un élément simple (il ne contient pas d'autres éléments) et une collection d'éléments. L'élément simple est nommé simple et la collection est nommée urls.

  • Application console. L'application lit le contenu du fichier app.config et écrit les informations dans la console. Il utilise des classes qui dérivent de ConfigurationElement, ConfigurationElementCollection et ConfigurationSection.

  • Une classe nommée UrlsSection qui dérive de la classe ConfigurationSection. Cette classe est utilisée pour accéder à la section MyUrls dans le fichier de configuration.

  • Une classe nommée UrlsCollection qui dérive de la classe ConfigurationElementCollection. Cette classe est utilisée pour accéder à la collection urls dans le fichier de configuration.

  • Une classe nommée UrlConfigElement qui dérive de la classe ConfigurationElement. Cette classe est utilisée pour accéder à l'élément simple et aux membres de la collection urls dans le fichier de configuration.

Pour exécuter l'exemple, exécutez les étapes suivantes :

  1. Créez une solution qui a un projet d'application console et un projet bibliothèque de classes nommés ConfigurationElement.

  2. Mettez les trois fichiers de classe dans le projet de bibliothèque de classes et mettez les autres fichiers dans le projet de bibliothèque de console.

  3. Dans les deux projets affectez à une référence la valeur System.Configuration.

  4. Dans le groupe de projets d'application de la console, un projet fait référence au projet de bibliothèque de classes.


<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 name="MyFavorites">
    <simple name="Microsoft1" url="http://www.microsoft1.com" port="1" />
    <urls>
      <clear />
      <add name="Microsoft2" url="http://www.microsoft2.com" port="2" />
      <add name="Contoso" url="http://www.contoso.com" port="8080" />
    </urls>
	</MyUrls>
</configuration>



' Set Assembly name to ConfigurationElement
' and set Root namespace to Samples.AspNet
Imports System
Imports System.Configuration
Imports System.Collections

Class TestConfigurationElement
    ' Entry point for console application that reads the 
    ' app.config file and writes to the console the 
    ' URLs in the custom section.
    Shared Sub Main(ByVal args() As String)
        ' Get the current configuration file.
        Dim config As System.Configuration.Configuration = _
            ConfigurationManager.OpenExeConfiguration( _
            ConfigurationUserLevel.None)

        ' Get the MyUrls section.
        Dim myUrlsSection As UrlsSection = _
            config.GetSection("MyUrls")

        If myUrlsSection Is Nothing Then
            Console.WriteLine("Failed to load UrlsSection.")
        Else
            Console.WriteLine("The 'simple' element of app.config:")
            Console.WriteLine("  Name={0} URL={1} Port={2}", _
                myUrlsSection.Simple.Name, _
                myUrlsSection.Simple.Url, _
                myUrlsSection.Simple.Port)
            Console.WriteLine("The urls collection of app.config:")
            Dim i As Integer
            For i = 0 To myUrlsSection.Urls.Count - 1
                Console.WriteLine("  Name={0} URL={1} Port={2}", _
                i, myUrlsSection.Urls(i).Name, _
                myUrlsSection.Urls(i).Url, _
                myUrlsSection.Urls(i).Port)
            Next i
        End If
        Console.ReadLine()
    End Sub
End Class



// Set Assembly name to ConfigurationElement
using System;
using System.Configuration;
using System.Collections;

namespace Samples.AspNet
{
    // Entry point for console application that reads the 
    // app.config file and writes to the console the 
    // URLs in the custom section.  
    class TestConfigurationElement
    {
        static void Main(string[] args)
        {
            // Get current configuration file.
            System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(
                ConfigurationUserLevel.None);

            // Get the MyUrls section.
            UrlsSection myUrlsSection =
                config.GetSection("MyUrls") as UrlsSection;

            if (myUrlsSection == null)
                Console.WriteLine("Failed to load UrlsSection.");
            else
            {
                Console.WriteLine("The 'simple' element of app.config:");
                Console.WriteLine("  Name={0} URL={1} Port={2}",
                    myUrlsSection.Simple.Name,
                    myUrlsSection.Simple.Url,
                    myUrlsSection.Simple.Port);

                Console.WriteLine("The urls collection of app.config:");
                for (int i = 0; i < myUrlsSection.Urls.Count; i++)
                {
                    Console.WriteLine("  Name={0} URL={1} Port={2}",
                        myUrlsSection.Urls[i].Name,
                        myUrlsSection.Urls[i].Url,
                        myUrlsSection.Urls[i].Port);
                }
            }
            Console.ReadLine();
        }
    }
}



Imports System
Imports System.Configuration
Imports System.Collections

' Define a custom section containing an individual
' element and a collection of elements.
Public Class UrlsSection
    Inherits ConfigurationSection

    <ConfigurationProperty("name", _
        DefaultValue:="MyFavorites", _
        IsRequired:=True, _
        IsKey:=False), _
        StringValidator( _
        InvalidCharacters:=" ~!@#$%^&*()[]{}/;'""|\", _
        MinLength:=1, MaxLength:=60)> _
        Public Property Name() As String

        Get
            Return CStr(Me("name"))
        End Get
        Set(ByVal value As String)
            Me("name") = value
        End Set
    End Property

    ' Declare an element (not in a collection) of the type
    ' UrlConfigElement. In the configuration
    ' file it corresponds to <simple .... />.
    <ConfigurationProperty("simple")> _
        Public ReadOnly Property Simple() _
        As UrlConfigElement

        Get
            Dim url As UrlConfigElement = _
                CType(Me("simple"),  _
                UrlConfigElement)
            Return url
        End Get
    End Property

    ' Declare a collection element represented 
    ' in the configuration file by the sub-section
    ' <urls> <add .../> </urls> 
    ' Note: the "IsDefaultCollection = false" 
    ' instructs the .NET Framework to build a nested 
    ' section like <urls> ...</urls>.
    <ConfigurationProperty("urls", _
        IsDefaultCollection:=False)> _
        Public ReadOnly Property Urls() _
        As UrlsCollection

        Get
            Dim urlsCollection _
                As UrlsCollection = _
                CType(Me("urls"), UrlsCollection)
            Return urlsCollection
        End Get
    End Property

    Protected Overrides Sub DeserializeSection( _
        ByVal reader As System.Xml.XmlReader)

        MyBase.DeserializeSection(reader)
        ' Enter your custom processing code here.
    End Sub 'DeserializeSection

    Protected Overrides Function SerializeSection( _
        ByVal parentElement As ConfigurationElement, _
        ByVal name As String, _
        ByVal saveMode As ConfigurationSaveMode) As String

        Dim s As String = _
            MyBase.SerializeSection(parentElement, _
            name, saveMode)
        ' Enter your custom processing code here.
        Return s
    End Function 'SerializeSection
End Class 'UrlsSection 



using System;
using System.Configuration;
using System.Collections;


namespace Samples.AspNet
{
    // Define a custom section containing an individual
    // element and a collection of elements.
    public class UrlsSection : ConfigurationSection
    {
        [ConfigurationProperty("name", 
            DefaultValue = "MyFavorites",
            IsRequired = true, 
            IsKey = false)]
        [StringValidator(InvalidCharacters = 
            " ~!@#$%^&*()[]{}/;'\"|\\",
            MinLength = 1, MaxLength = 60)]
        public string Name
        {

            get
            {
                return (string)this["name"];
            }
            set
            {
                this["name"] = value;
            }

        }

        // Declare an element (not in a collection) of the type
        // UrlConfigElement. In the configuration
        // file it corresponds to <simple .... />.
        [ConfigurationProperty("simple")]
        public UrlConfigElement Simple
        {
            get
            {
                UrlConfigElement url =
                (UrlConfigElement)base["simple"];
                return url;
            }
        }

        // Declare a collection element represented 
        // in the configuration file by the sub-section
        // <urls> <add .../> </urls> 
        // Note: the "IsDefaultCollection = false" 
        // instructs the .NET Framework to build a nested 
        // section like <urls> ...</urls>.
        [ConfigurationProperty("urls",
            IsDefaultCollection = false)]
        public UrlsCollection Urls
        {
            get
            {
                UrlsCollection urlsCollection =
                (UrlsCollection)base["urls"];
                return urlsCollection;
            }
        }


        protected override void DeserializeSection(
            System.Xml.XmlReader reader)
        {
            base.DeserializeSection(reader);
            // You can add custom processing code here.
        }

        protected override string SerializeSection(
            ConfigurationElement parentElement,
            string name, ConfigurationSaveMode saveMode)
        {
            string s =
                base.SerializeSection(parentElement,
                name, saveMode);
            // You can add custom processing code here.
            return s;
        }

    }
}



Imports System
Imports System.Configuration
Imports System.Collections

Public Class UrlsCollection
    Inherits ConfigurationElementCollection

    Public Sub New()
        ' Add one url to the collection.  This is
        ' not necessary; could leave the collection 
        ' empty until items are added to it outside
        ' the constructor.
        Dim url As UrlConfigElement = _
            CType(CreateNewElement(), UrlConfigElement)
        ' Add the element to the collection.
        Add(url)
    End Sub 'New

    Public Overrides ReadOnly Property CollectionType() _
        As ConfigurationElementCollectionType

        Get
            Return ConfigurationElementCollectionType.AddRemoveClearMap
        End Get
    End Property

    Protected Overloads Overrides Function CreateNewElement() _
        As ConfigurationElement

        Return New UrlConfigElement()
    End Function 'CreateNewElement

    Protected Overloads Overrides Function CreateNewElement( _
        ByVal elementName As String) _
        As ConfigurationElement

        Return New UrlConfigElement(elementName)
    End Function 'CreateNewElement

    Protected Overrides Function GetElementKey( _
        ByVal element As ConfigurationElement) As [Object]

        Return CType(element, UrlConfigElement).Name
    End Function 'GetElementKey

    Public Shadows Property AddElementName() As String

        Get
            Return MyBase.AddElementName
        End Get

        Set(ByVal value As String)
            MyBase.AddElementName = value
        End Set
    End Property

    Public Shadows Property ClearElementName() As String
        Get
            Return MyBase.ClearElementName
        End Get

        Set(ByVal value As String)
            MyBase.ClearElementName = value
        End Set
    End Property

    Public Shadows ReadOnly Property RemoveElementName() As String
        Get
            Return MyBase.RemoveElementName
        End Get
    End Property

    Public Shadows ReadOnly Property Count() As Integer
        Get
            Return MyBase.Count
        End Get
    End Property

    Default Public Shadows Property Item( _
    ByVal index As Integer) As UrlConfigElement
        Get
            Return CType(BaseGet(index), UrlConfigElement)
        End Get

        Set(ByVal value As UrlConfigElement)
            If Not (BaseGet(index) Is Nothing) Then
                BaseRemoveAt(index)
            End If
            BaseAdd(index, value)
        End Set
    End Property

    Default Public Shadows ReadOnly Property Item( _
        ByVal Name As String) As UrlConfigElement

        Get
            Return CType(BaseGet(Name), UrlConfigElement)
        End Get
    End Property

    Public Function IndexOf( _
        ByVal url As UrlConfigElement) As Integer

        Return BaseIndexOf(url)
    End Function 'IndexOf

    Public Sub Add(ByVal url As UrlConfigElement)
        BaseAdd(url)
        ' Add custom code here.
    End Sub 'Add

    Protected Overrides Sub BaseAdd( _
    ByVal element As ConfigurationElement)
        BaseAdd(element, False)
        ' Add custom code here.
    End Sub 'BaseAdd

    Public Overloads Sub Remove( _
        ByVal url As UrlConfigElement)

        If BaseIndexOf(url) >= 0 Then
            BaseRemove(url.Name)
        End If
    End Sub 'Remove

    Public Sub RemoveAt(ByVal index As Integer)
        BaseRemoveAt(index)
    End Sub 'RemoveAt

    Public Overloads Sub Remove(ByVal name As String)
        BaseRemove(name)
    End Sub 'Remove    

    Public Sub Clear()
        BaseClear()
    End Sub 'Clear ' 
End Class 'UrlsCollection



using System;
using System.Configuration;
using System.Collections;

namespace Samples.AspNet
{
    public class UrlsCollection : ConfigurationElementCollection
    {
        public UrlsCollection()
        {
            // Add one url to the collection.  This is
            // not necessary; could leave the collection 
            // empty until items are added to it outside
            // the constructor.
            UrlConfigElement url = 
                (UrlConfigElement)CreateNewElement();
            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.ClearElementName = 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.
        }
    }
}



Imports System
Imports System.Configuration
Imports System.Collections

Public Class UrlConfigElement
    Inherits ConfigurationElement

    ' Constructor allowing name, url, and port to be specified.
    Public Sub New(ByVal newName As String, _
        ByVal newUrl As String, _
        ByVal newPort As Integer)

        Name = newName
        Url = newUrl
        Port = newPort

    End Sub 'New

    ' Default constructor, will use default values as defined
    Public Sub New()

    End Sub 'New


    ' Constructor allowing name to be specified, will take the
    ' default values for url and port.
    Public Sub New(ByVal elementName As String)
        Name = elementName

    End Sub 'New


    <ConfigurationProperty("name", _
        DefaultValue:="Microsoft", _
        IsRequired:=True, _
        IsKey:=True)> _
        Public Property Name() As String

        Get
            Return CStr(Me("name"))
        End Get
        Set(ByVal value As String)
            Me("name") = value
        End Set
    End Property


    <ConfigurationProperty("url", _
        DefaultValue:="http://www.microsoft.com", _
        IsRequired:=True), _
        RegexStringValidator("\w+:\/\/[\w.]+\S*")> _
        Public Property Url() As String

        Get
            Return CStr(Me("url"))
        End Get
        Set(ByVal value As String)
            Me("url") = value
        End Set
    End Property


    <ConfigurationProperty("port", _
        DefaultValue:=0, _
        IsRequired:=False), _
        IntegerValidator(MinValue:=0, _
        MaxValue:=8080, ExcludeRange:=False)> _
        Public Property Port() As Integer

        Get
            Return Fix(Me("port"))
        End Get
        Set(ByVal value As Integer)
            Me("port") = value
        End Set
    End Property


    Protected Overrides Sub DeserializeElement(ByVal reader _
        As System.Xml.XmlReader, _
        ByVal serializeCollectionKey As Boolean)

        MyBase.DeserializeElement(reader, _
            serializeCollectionKey)
        ' Enter your custom processing code here.
    End Sub 'DeserializeElement

    Protected Overrides Function SerializeElement(ByVal writer _
        As System.Xml.XmlWriter, _
        ByVal serializeCollectionKey As Boolean) As Boolean

        Dim ret As Boolean = _
            MyBase.SerializeElement(writer, serializeCollectionKey)
        ' Enter your custom processing code here.
        Return ret
    End Function 'SerializeElement

    Protected Overrides Function IsModified() As Boolean
        Dim ret As Boolean = MyBase.IsModified()
        ' Enter your custom processing code here.
        Return ret

    End Function 'IsModified
End Class 'UrlConfigElement 




using System;
using System.Configuration;
using System.Collections;

namespace Samples.AspNet
{
    public class UrlConfigElement : ConfigurationElement
    {
        // Constructor allowing name, url, and port to be specified.
        public UrlConfigElement(String newName,
            String newUrl, int newPort)
        {
            Name = newName;
            Url = newUrl;
            Port = newPort;
        }

        // Default constructor, will use default values as defined
        // below.
        public UrlConfigElement()
        {
        }

        // Constructor allowing name to be specified, will take the
        // default values for url and port.
        public UrlConfigElement(string elementName)
        {
            Name = elementName;
        }

        [ConfigurationProperty("name", 
            DefaultValue = "Microsoft",
            IsRequired = true, 
            IsKey = true)]
        public string Name
        {
            get
            {
                return (string)this["name"];
            }
            set
            {
                this["name"] = value;
            }
        }

        [ConfigurationProperty("url",
            DefaultValue = "http://www.microsoft.com",
            IsRequired = true)]
        [RegexStringValidator(@"\w+:\/\/[\w.]+\S*")]
        public string Url
        {
            get
            {
                return (string)this["url"];
            }
            set
            {
                this["url"] = value;
            }
        }

        [ConfigurationProperty("port",
            DefaultValue = (int)0,
            IsRequired = false)]
        [IntegerValidator(MinValue = 0,
            MaxValue = 8080, ExcludeRange = false)]
        public int Port
        {
            get
            {
                return (int)this["port"];
            }
            set
            {
                this["port"] = value;
            }
        }

        protected override void DeserializeElement(
           System.Xml.XmlReader reader, 
            bool serializeCollectionKey)
        {
            base.DeserializeElement(reader, 
                serializeCollectionKey);
            // You can your custom processing code here.
        }


        protected override bool SerializeElement(
            System.Xml.XmlWriter writer, 
            bool serializeCollectionKey)
        {
            bool ret = base.SerializeElement(writer, 
                serializeCollectionKey);
            // You can enter your custom processing code here.
            return ret;

        }


        protected override bool IsModified()
        {
            bool ret = base.IsModified();
            // You can enter your custom processing code here.
            return ret;
        }
    }
}


.NET Framework

Pris en charge dans : 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
System.Object
  System.Configuration.ConfigurationElement
    System.Configuration.ConfigurationElementCollection
    System.Configuration.ConfigurationSection
    System.Configuration.ConnectionStringSettings
    System.Configuration.IdnElement
    System.Configuration.IriParsingElement
    System.Configuration.KeyValueConfigurationElement
    System.Configuration.NameValueConfigurationElement
    System.Configuration.ProtectedProviderSettings
    System.Configuration.ProviderSettings
    System.Configuration.SchemeSettingElement
    System.Configuration.SettingElement
    System.Configuration.SettingValueElement
    System.Data.Services.Configuration.DataServicesReplaceFunctionFeature
    System.IdentityModel.Configuration.AudienceUriElement
    System.IdentityModel.Configuration.ConfigurationElementInterceptor
    System.IdentityModel.Configuration.IdentityConfigurationElement
    System.IdentityModel.Configuration.IdentityModelCachesElement
    System.IdentityModel.Configuration.SecurityTokenHandlerConfigurationElement
    System.IdentityModel.Configuration.TokenReplayDetectionElement
    System.IdentityModel.Configuration.X509CertificateValidationElement
    System.IdentityModel.Services.ChunkedCookieHandlerElement
    System.IdentityModel.Services.Configuration.FederationConfigurationElement
    System.IdentityModel.Services.Configuration.WSFederationElement
    System.IdentityModel.Services.CookieHandlerElement
    System.IdentityModel.Services.ServiceCertificateElement
    System.Net.Configuration.AuthenticationModuleElement
    System.Net.Configuration.BypassElement
    System.Net.Configuration.ConnectionManagementElement
    System.Net.Configuration.FtpCachePolicyElement
    System.Net.Configuration.HttpCachePolicyElement
    System.Net.Configuration.HttpListenerElement
    System.Net.Configuration.HttpListenerTimeoutsElement
    System.Net.Configuration.HttpWebRequestElement
    System.Net.Configuration.Ipv6Element
    System.Net.Configuration.ModuleElement
    System.Net.Configuration.PerformanceCountersElement
    System.Net.Configuration.ProxyElement
    System.Net.Configuration.ServicePointManagerElement
    System.Net.Configuration.SmtpNetworkElement
    System.Net.Configuration.SmtpSpecifiedPickupDirectoryElement
    System.Net.Configuration.SocketElement
    System.Net.Configuration.WebProxyScriptElement
    System.Net.Configuration.WebRequestModuleElement
    System.Net.Configuration.WebUtilityElement
    System.Runtime.Caching.Configuration.MemoryCacheElement
    System.Runtime.Serialization.Configuration.DeclaredTypeElement
    System.Runtime.Serialization.Configuration.ParameterElement
    System.Runtime.Serialization.Configuration.TypeElement
    System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement
    System.Security.Authentication.ExtendedProtection.Configuration.ServiceNameElement
    System.ServiceModel.Activation.Configuration.SecurityIdentifierElement
    System.ServiceModel.Activities.Configuration.ChannelSettingsElement
    System.ServiceModel.Activities.Configuration.FactorySettingsElement
    System.ServiceModel.Activities.Tracking.Configuration.TrackingConfigurationElement
    System.ServiceModel.Configuration.AllowedAudienceUriElement
    System.ServiceModel.Configuration.AuthorizationPolicyTypeElement
    System.ServiceModel.Configuration.BaseAddressElement
    System.ServiceModel.Configuration.BaseAddressPrefixFilterElement
    System.ServiceModel.Configuration.BindingCollectionElement
    System.ServiceModel.Configuration.CertificateElement
    System.ServiceModel.Configuration.CertificateReferenceElement
    System.ServiceModel.Configuration.ChannelEndpointElement
    System.ServiceModel.Configuration.ClaimTypeElement
    System.ServiceModel.Configuration.ComContractElement
    System.ServiceModel.Configuration.ComMethodElement
    System.ServiceModel.Configuration.ComPersistableTypeElement
    System.ServiceModel.Configuration.ComUdtElement
    System.ServiceModel.Configuration.DefaultPortElement
    System.ServiceModel.Configuration.DelegatingHandlerElement
    System.ServiceModel.Configuration.DnsElement
    System.ServiceModel.Configuration.EndpointCollectionElement
    System.ServiceModel.Configuration.EndToEndTracingElement
    System.ServiceModel.Configuration.ExtensionElement
    System.ServiceModel.Configuration.HostElement
    System.ServiceModel.Configuration.HostTimeoutsElement
    System.ServiceModel.Configuration.HttpDigestClientElement
    System.ServiceModel.Configuration.HttpMessageHandlerFactoryElement
    System.ServiceModel.Configuration.IdentityElement
    System.ServiceModel.Configuration.IssuedTokenClientBehaviorsElement
    System.ServiceModel.Configuration.IssuedTokenClientElement
    System.ServiceModel.Configuration.IssuedTokenServiceElement
    System.ServiceModel.Configuration.MessageLoggingElement
    System.ServiceModel.Configuration.MetadataElement
    System.ServiceModel.Configuration.PeerCredentialElement
    System.ServiceModel.Configuration.PolicyImporterElement
    System.ServiceModel.Configuration.ProtocolMappingElement
    System.ServiceModel.Configuration.RsaElement
    System.ServiceModel.Configuration.SecureConversationServiceElement
    System.ServiceModel.Configuration.ServiceActivationElement
    System.ServiceModel.Configuration.ServiceElement
    System.ServiceModel.Configuration.ServiceEndpointElement
    System.ServiceModel.Configuration.ServiceModelConfigurationElement
    System.ServiceModel.Configuration.ServiceModelExtensionCollectionElement<TServiceModelExtensionElement>
    System.ServiceModel.Configuration.ServicePrincipalNameElement
    System.ServiceModel.Configuration.StandardEndpointElement
    System.ServiceModel.Configuration.TransportConfigurationTypeElement
    System.ServiceModel.Configuration.UserNameServiceElement
    System.ServiceModel.Configuration.UserPrincipalNameElement
    System.ServiceModel.Configuration.WindowsClientElement
    System.ServiceModel.Configuration.WindowsServiceElement
    System.ServiceModel.Configuration.WsdlImporterElement
    System.ServiceModel.Configuration.X509CertificateTrustedIssuerElement
    System.ServiceModel.Configuration.X509ClientCertificateAuthenticationElement
    System.ServiceModel.Configuration.X509ClientCertificateCredentialsElement
    System.ServiceModel.Configuration.X509DefaultServiceCertificateElement
    System.ServiceModel.Configuration.X509InitiatorCertificateClientElement
    System.ServiceModel.Configuration.X509InitiatorCertificateServiceElement
    System.ServiceModel.Configuration.X509PeerCertificateAuthenticationElement
    System.ServiceModel.Configuration.X509PeerCertificateElement
    System.ServiceModel.Configuration.X509RecipientCertificateClientElement
    System.ServiceModel.Configuration.X509RecipientCertificateServiceElement
    System.ServiceModel.Configuration.X509ScopedServiceCertificateElement
    System.ServiceModel.Configuration.X509ServiceCertificateAuthenticationElement
    System.ServiceModel.Configuration.XmlElementElement
    System.ServiceModel.Configuration.XPathMessageFilterElement
    System.ServiceModel.Discovery.Configuration.ContractTypeNameElement
    System.ServiceModel.Discovery.Configuration.DiscoveryClientSettingsElement
    System.ServiceModel.Discovery.Configuration.FindCriteriaElement
    System.ServiceModel.Discovery.Configuration.ScopeElement
    System.ServiceModel.Discovery.Configuration.UdpTransportSettingsElement
    System.ServiceModel.Routing.Configuration.BackupEndpointElement
    System.ServiceModel.Routing.Configuration.FilterElement
    System.ServiceModel.Routing.Configuration.FilterTableEntryElement
    System.ServiceModel.Routing.Configuration.NamespaceElement
    System.Web.Configuration.AssemblyInfo
    System.Web.Configuration.AuthorizationRule
    System.Web.Configuration.BufferModeSettings
    System.Web.Configuration.BuildProvider
    System.Web.Configuration.ClientTarget
    System.Web.Configuration.CodeSubDirectory
    System.Web.Configuration.Compiler
    System.Web.Configuration.Converter
    System.Web.Configuration.CustomError
    System.Web.Configuration.EventMappingSettings
    System.Web.Configuration.ExpressionBuilder
    System.Web.Configuration.FolderLevelBuildProvider
    System.Web.Configuration.FormsAuthenticationConfiguration
    System.Web.Configuration.FormsAuthenticationCredentials
    System.Web.Configuration.FormsAuthenticationUser
    System.Web.Configuration.FullTrustAssembly
    System.Web.Configuration.HttpHandlerAction
    System.Web.Configuration.HttpModuleAction
    System.Web.Configuration.IgnoreDeviceFilterElement
    System.Web.Configuration.NamespaceInfo
    System.Web.Configuration.OutputCacheProfile
    System.Web.Configuration.PartialTrustVisibleAssembly
    System.Web.Configuration.PassportAuthentication
    System.Web.Configuration.ProfileGroupSettings
    System.Web.Configuration.ProfilePropertySettings
    System.Web.Configuration.ProfileSettings
    System.Web.Configuration.ProtocolElement
    System.Web.Configuration.RuleSettings
    System.Web.Configuration.SqlCacheDependencyDatabase
    System.Web.Configuration.TagMapInfo
    System.Web.Configuration.TagPrefixInfo
    System.Web.Configuration.TransformerInfo
    System.Web.Configuration.TrustLevel
    System.Web.Configuration.UrlMapping
    System.Web.Configuration.WebPartsPersonalization
    System.Web.Configuration.WebPartsPersonalizationAuthorization
    System.Web.Mobile.DeviceFilterElement
    System.Web.Services.Configuration.DiagnosticsElement
    System.Web.Services.Configuration.ProtocolElement
    System.Web.Services.Configuration.SoapEnvelopeProcessingElement
    System.Web.Services.Configuration.SoapExtensionTypeElement
    System.Web.Services.Configuration.TypeElement
    System.Web.Services.Configuration.WsdlHelpGeneratorElement
    System.Web.Services.Configuration.WsiProfilesElement
    System.Web.UI.MobileControls.ControlElement
    System.Web.UI.MobileControls.DeviceElement
    System.Workflow.Runtime.Configuration.WorkflowRuntimeServiceElement
    System.Xaml.Hosting.Configuration.HandlerElement
    System.Xml.Serialization.Configuration.SchemaImporterExtensionElement
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.