ConfigurationElement Classe
TOC
Comprimi il sommario
Espandi il sommario
Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe ConfigurationElement

 

Rappresenta un elemento di configurazione contenuto in un file di configurazione.

Spazio dei nomi:   System.Configuration
Assembly:  System.Configuration (in System.Configuration.dll)

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.Xml.Serialization.Configuration.SchemaImporterExtensionElement

public abstract class ConfigurationElement

NomeDescrizione
System_CAPS_protmethodConfigurationElement()

Inizializza una nuova istanza della classe ConfigurationElement.

NomeDescrizione
System_CAPS_pubpropertyCurrentConfiguration

Ottiene un riferimento all'istanza di Configuration di livello superiore che rappresenta la gerarchia di configurazione cui appartiene l'istanza corrente di ConfigurationElement.

System_CAPS_pubpropertyElementInformation

Ottiene un oggetto ElementInformation contenente le funzionalità e le informazioni non personalizzabili dell'oggetto ConfigurationElement.

System_CAPS_protpropertyElementProperty

Ottiene l'oggetto ConfigurationElementProperty che rappresenta l'oggetto ConfigurationElement stesso.

System_CAPS_protpropertyEvaluationContext

Ottiene l'oggetto ContextInformation per l'oggetto ConfigurationElement .

System_CAPS_protpropertyHasContext

Ottiene un valore che indica se la proprietà CurrentConfiguration è null.

System_CAPS_protpropertyItem[ConfigurationProperty]

Ottiene o imposta una proprietà o un attributo di questo elemento di configurazione.

System_CAPS_protpropertyItem[String]

Ottiene o imposta una proprietà, un attributo o un elemento figlio di questo elemento di configurazione.

System_CAPS_pubpropertyLockAllAttributesExcept

Ottiene l'insieme di attributi bloccati.

System_CAPS_pubpropertyLockAllElementsExcept

Ottiene l'insieme di elementi bloccati.

System_CAPS_pubpropertyLockAttributes

Ottiene l'insieme di attributi bloccati

System_CAPS_pubpropertyLockElements

Ottiene l'insieme di elementi bloccati.

System_CAPS_pubpropertyLockItem

Ottiene o imposta un valore che indica se l'elemento è bloccato.

System_CAPS_protpropertyProperties

Ottiene l'insieme di proprietà.

NomeDescrizione
System_CAPS_protmethodDeserializeElement(XmlReader, Boolean)

Legge il codice XML dal file di configurazione.

System_CAPS_pubmethodEquals(Object)

Confronta l'istanza corrente di ConfigurationElement con l'oggetto specificato.(Esegue l’override di Object.Equals(Object)).

System_CAPS_protmethodFinalize()

Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object.)

System_CAPS_pubmethodGetHashCode()

Ottiene un valore univoco che rappresenta l'istanza corrente di ConfigurationElement.(Esegue l’override di Object.GetHashCode()).

System_CAPS_protmethodGetTransformedAssemblyString(String)

Restituisce la versione trasformata del nome di assembly specificato.

System_CAPS_protmethodGetTransformedTypeString(String)

Restituisce la versione trasformata del nome del tipo specificato.

System_CAPS_pubmethodGetType()

Ottiene il Type dell'istanza corrente. (Ereditato da Object.)

System_CAPS_protmethodInit()

Ripristina lo stato iniziale dell'oggetto ConfigurationElement.

System_CAPS_protmethodInitializeDefault()

Da utilizzare per inizializzare un insieme predefinito di valori per l'oggetto ConfigurationElement.

System_CAPS_protmethodIsModified()

Indica se questo elemento di configurazione è stato modificato dopo l'ultimo salvataggio o caricamento durante l'implementazione in una classe derivata.

System_CAPS_pubmethodIsReadOnly()

Ottiene un valore che indica se l'oggetto ConfigurationElement è in sola lettura.

System_CAPS_protmethodListErrors(IList)

Aggiunge all'elenco passato gli errori di proprietà non valida di questo oggetto ConfigurationElement e di tutti i sottoelementi.

System_CAPS_protmethodMemberwiseClone()

Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object.)

System_CAPS_protmethodOnDeserializeUnrecognizedAttribute(String, String)

Ottiene un valore che indica se viene incontrato un attributo sconosciuto durante la deserializzazione.

System_CAPS_protmethodOnDeserializeUnrecognizedElement(String, XmlReader)

Ottiene un valore che indica se viene incontrato un attributo sconosciuto durante la deserializzazione.

System_CAPS_protmethodOnRequiredPropertyNotFound(String)

Genera un'eccezione quando una proprietà obbligatoria non viene trovata.

System_CAPS_protmethodPostDeserialize()

Da chiamare dopo la deserializzazione.

System_CAPS_protmethodPreSerialize(XmlWriter)

Da chiamare prima della serializzazione.

System_CAPS_protmethodReset(ConfigurationElement)

Reimposta lo stato interno dell'oggetto ConfigurationElement, inclusi i blocchi e gli insiemi di proprietà.

System_CAPS_protmethodResetModified()

Reimposta il valore del metodo IsModified su false quando viene implementato in una classe derivata.

System_CAPS_protmethodSerializeElement(XmlWriter, Boolean)

Scrive il contenuto di questo elemento di configurazione nel file di configurazione in caso di implementazione in una classe derivata.

System_CAPS_protmethodSerializeToXmlElement(XmlWriter, String)

Scrive i tag esterni di questo elemento di configurazione nel file di configurazione in caso di implementazione in una classe derivata.

System_CAPS_protmethodSetPropertyValue(ConfigurationProperty, Object, Boolean)

Imposta una proprietà sul valore specificato.

System_CAPS_protmethodSetReadOnly()

Imposta la proprietà IsReadOnly per l'oggetto ConfigurationElement e tutti i sottoelementi.

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object.)

System_CAPS_protmethodUnmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Modifica l'oggetto ConfigurationElement in modo da rimuovere tutti i valori che non devono essere salvati.

ConfigurationElement è una classe astratta utilizzata per rappresentare un elemento XML in un file di configurazione (quale Web.config).Un elemento in un file configurazione può contenere zero, uno o più elementi figlio.

Dal momento che la classe ConfigurationElement è definita come astratta, non è possibile creare un'istanza della classe direttamente.È possibile solo derivare classi correlate..NET Framework include classi che derivano dalla classe ConfigurationElement per rappresentare elementi di configurazione XML standard, ad esempio ConfigurationSection.È inoltre possibile estendere la classe ConfigurationElement per consentire l'accesso agli elementi e alle sezioni di configurazione personalizzata.Nell'esempio riportato più avanti in questo argomento viene mostrato come accedere agli elementi e alle sezioni di configurazione personalizzata tramite classi personalizzate che derivano da ConfigurationElement.

È inoltre possibile estendere i tipi di configurazione standard quali ConfigurationElement, ConfigurationElementCollection, ConfigurationProperty e ConfigurationSection.Per ulteriori informazioni, vedere la documentazione relativa a quelle classi.

Per ulteriori informazioni sulle modalità di accesso alle informazioni nei file di configurazione, vedere le classi ConfigurationManager e WebConfigurationManager.

Note per gli eredi:

Ogni oggetto ConfigurationElement crea una raccolta ConfigurationPropertyCollection interna di oggetti ConfigurationProperty che rappresenta gli attributi di elemento o una raccolta di elementi figlio.

Le funzionalità e le informazioni non personalizzabili sono contenute da un oggetto ElementInformation fornito dalla proprietà ElementInformation.

È possibile utilizzare un modello di codifica a livello di codice oppure dichiarativo, ovvero con attributi, per creare un elemento di configurazione personalizzato.

  • Il modello a livello di programmazione richiede che per ogni attributo di elemento venga creata una proprietà per ottenerne o impostarne il valore e aggiungerlo all'elenco proprietà interno della classe base ConfigurationElement sottostante.Per un esempio di utilizzo di questo modello, vedere la classe ConfigurationSection.

  • Il modello dichiarativo più semplice, detto anche modello con attributi, consente di definire un attributo di elemento utilizzando una proprietà e di decorarlo con attributi.Questi ultimi forniscono al sistema di configurazione di ASP.NET le informazioni sui tipi di proprietà e sui relativi valori predefiniti.Con queste informazioni, ottenute tramite la reflection, il sistema di configurazione ASP.NET crea gli oggetti della proprietà dell'elemento ed esegue l'inizializzazione necessaria.L'esempio riportato più avanti in questo argomento illustra come utilizzare questo metodo.

Nell'esempio di codice riportato di seguito viene illustrato come implementare un elemento personalizzato ConfigurationElement sia come singolo elemento in una sezione personalizzata che come insieme di elementi in una sezione personalizzata.L'esempio è dato dai seguenti file:

  • Un file app.config contiene una sezione personalizzata denominata MyUrls.Questa sezione contiene un elemento semplice (non contiene altri elementi) e un insieme di elementi.L'elemento semplice è denominato simple e l'insieme è denominato urls.

  • Un'applicazione console.L'applicazione legge il contenuto del file app.config e scrive le informazioni sulla console.Utilizza le classi derivate da ConfigurationElement, ConfigurationElementCollection e ConfigurationSection.

  • Classe denominata UrlsSection che deriva dalla classe ConfigurationSection.Questa classe viene utilizzata per accedere alla sezione MyUrls nel file di configurazione.

  • Classe denominata UrlsCollection che deriva dalla classe ConfigurationElementCollection.Questa classe viene utilizzata per accedere all'insieme urls nel file di configurazione.

  • Classe denominata UrlConfigElement che deriva dalla classe ConfigurationElement.Questa classe viene utilizzata per accedere all'elemento simple e ai membri dell'insieme urls nel file di configurazione.

Per eseguire l'esempio, attenersi alla procedura descritta di seguito:

  1. Creare una soluzione con un progetto di applicazione console e un progetto di libreria di classi denominato ConfigurationElement.

  2. Inserire i tre file della classe nel progetto libreria di classi e gli altri file nel progetto di libreria di console.

  3. In entrambi progetti impostare un riferimento su System.Configuration.

  4. Nel progetto di applicazione console impostare un riferimento al progetto della libreria di classi.


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

  ' 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

  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

' 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
{
    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 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 'NewNew

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

  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 'NewNew

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

    End Sub 'NewNew


    ' 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 'NewNew


    <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 

.NET Framework
Disponibile da 2.0

Eventuali membri pubblici statici (Shared in Visual Basic) di questo tipo sono thread-safe. I membri di istanza non sono garantiti come thread-safe.

Torna all'inizio
Mostra:
© 2016 Microsoft