ConfigurationSection Clase

Definición

Representa una sección dentro de un archivo de configuración.Represents a section within a configuration file.

public ref class ConfigurationSection abstract : System::Configuration::ConfigurationElement
public abstract class ConfigurationSection : System.Configuration.ConfigurationElement
type ConfigurationSection = class
    inherit ConfigurationElement
Public MustInherit Class ConfigurationSection
Inherits ConfigurationElement
Herencia
ConfigurationSection
Derivado

Ejemplos

En el ejemplo siguiente se muestra cómo implementar una sección personalizada mediante programación.The following example shows how to implement a custom section programmatically.

Para obtener un ejemplo completo que muestra cómo implementar y usar una sección personalizada implementada mediante el modelo con atributos ConfigurationElement, vea.For a complete example that shows how to implement and use a custom section implemented using the attributed model, see ConfigurationElement.

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

    // The FileName property.
    private static readonly ConfigurationProperty _FileName =
        new ConfigurationProperty("fileName", 
        typeof(string),"default.txt", 
        ConfigurationPropertyOptions.IsRequired);

    // The MaxUsers property.
    private static readonly ConfigurationProperty _MaxUsers =
        new ConfigurationProperty("maxUsers", 
        typeof(long), (long)1000, 
        ConfigurationPropertyOptions.None);
    
    // The MaxIdleTime property.
    private static readonly ConfigurationProperty _MaxIdleTime =
        new ConfigurationProperty("maxIdleTime", 
        typeof(TimeSpan), TimeSpan.FromMinutes(5), 
        ConfigurationPropertyOptions.IsRequired);

    // CustomSection constructor.
    public CustomSection()
    {
        // Property initialization
        _Properties = 
            new ConfigurationPropertyCollection();

        _Properties.Add(_FileName);
        _Properties.Add(_MaxUsers);
        _Properties.Add(_MaxIdleTime);
   }

  
    // This is a key customization. 
    // It returns the initialized property bag.
    protected override ConfigurationPropertyCollection Properties
    {
        get
        {
            return _Properties;
        }
    }


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

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


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


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

    [LongValidator(MinValue = 1, MaxValue = 1000000,
        ExcludeRange = false)]
    public long MaxUsers
    {
        get
        {
            return (long)this["maxUsers"];
        }
        set
        {
            this["maxUsers"] = value;
        }
    }

    [TimeSpanValidator(MinValueString = "0:0:30",
        MaxValueString = "5:00:0",
        ExcludeRange = false)]
    public TimeSpan MaxIdleTime
    {
        get
        {
            return  (TimeSpan)this["maxIdleTime"];
        }
        set
        {
            this["maxIdleTime"] = value;
        }
    }
   
    
}
' Define a custom section.
' The CustomSection type allows to define a custom section 
' programmatically.

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

El ejemplo siguiente es un extracto del archivo de configuración tal como se aplica al ejemplo anterior.The following example is an excerpt of the configuration file as it applies to the previous example.

<?xml version="1.0" encoding="utf-8"?>
 <configuration>  
   <configSections>
     <section name="CustomSection" type="Samples.AspNet. CustomSection, CustomConfigurationSection, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" restartOnExternalChanges="true" />
   </configSections>  

   <CustomSection fileName="default.txt" maxUsers="1000" maxIdleTime="00:15:00" /> 

 </configuration>

Comentarios

Use la ConfigurationSection clase para implementar un tipo de sección personalizado.You use the ConfigurationSection class to implement a custom section type. Extienda la ConfigurationSection clase para proporcionar control personalizado y acceso mediante programación a las secciones de configuración personalizadas.Extend the ConfigurationSection class to provide custom handling and programmatic access to custom configuration sections. Para obtener información sobre cómo usar las secciones de configuración personalizadas, consulte Cómo: Cree secciones de configuración personalizadas medianteConfigurationSection.For information about how use custom configuration sections, see How to: Create Custom Configuration Sections Using ConfigurationSection.

Una sección registra su tipo de control con una entrada en el configSections elemento.A section registers its handling type with an entry in the configSections element. Para obtener un ejemplo, vea el extracto del archivo de configuración que se muestra en la sección ejemplo.For an example, see the configuration file excerpt shown in the Example section.

Nota

En versiones anteriores de la .NET Framework, los controladores de la sección de configuración se usaban para realizar cambios en las opciones de configuración mediante programación.In previous versions of the .NET Framework, configuration section handlers were used to make changes to configuration settings programmatically. Ahora, todas las secciones de configuración predeterminadas se representan mediante clases ConfigurationSection que extienden la clase.Now, all the default configuration sections are represented by classes that extend the ConfigurationSection class.

Notas a los desarrolladores de herederos

Puede usar un modelo de codificación de programación o declarativo (con atributos) para crear secciones de configuración personalizadas:You can use a programmatic or a declarative (attributed) coding model to create custom configuration sections: -Modelo de programación.- Programmatic model. Este modelo requiere que para cada atributo de sección se cree una propiedad para obtener o establecer su valor y agregarlo al contenedor de propiedades interno de la ConfigurationElement clase base subyacente.This model requires that for each section attribute you create a property to get or set its value and add it to the internal property bag of the underlying ConfigurationElement base class.

-Modelo declarativo.- Declarative model. Este modelo más sencillo, también denominado modelo con atributos, permite definir un atributo de sección usando una propiedad y decorarlo con atributos.This simpler model, also called the attributed model, allows you to define a section attribute by using a property and decorating it with attributes. Estos atributos indican al sistema de configuración de ASP.NET los tipos de propiedad y sus valores predeterminados.These attributes instruct the ASP.NET configuration system about the property types and their default values. Con esta información, obtenida a través de la reflexión, el sistema de configuración de ASP.NET crea los objetos de propiedad de la sección y realiza la inicialización necesaria.With this information, obtained through reflection, the ASP.NET configuration system creates the section property objects and performs the required initialization.

La Configuration clase permite el acceso mediante programación para editar archivos de configuración.The Configuration class allows programmatic access for editing configuration files. Puede tener acceso a estos archivos para lectura o escritura como se indica a continuación:You can access these files for reading or writing as follows: Leía.- Reading. Use GetSection(String) oGetSectionGroup(String) para leer la información de configuración.You use GetSection(String) or GetSectionGroup(String) to read configuration information. Tenga en cuenta que el usuario o proceso que lee debe tener los permisos siguientes:Note that the user or process that reads must have the following permissions: -Permiso de lectura en el archivo de configuración en el nivel de la jerarquía de configuración actual.- Read permission on the configuration file at the current configuration hierarchy level.

: Permisos de lectura en todos los archivos de configuración principales.- Read permissions on all the parent configuration files.

Si la aplicación necesita acceso de solo lectura a su propia configuración, se recomienda usar los GetSection métodos sobrecargados en el caso de las aplicaciones web o el GetSection(String) método en el caso de las aplicaciones cliente.If your application needs read-only access to its own configuration, it is recommended you use the GetSection overloaded methods in the case of Web applications, or the GetSection(String) method in the case of client applications.

Estos métodos proporcionan acceso a los valores de configuración almacenados en caché para la aplicación actual, que tiene un mejor Configuration rendimiento que la clase.These methods provide access to the cached configuration values for the current application, which has better performance than the Configuration class.


Si usa un método estático GetSection que toma un path parámetro, el path parámetro debe hacer referencia a la aplicación en la que se está ejecutando el código; de lo contrario, el parámetro se omite y la información de configuración para el actualmente en ejecución se devuelve la aplicación.If you use a static GetSection method that takes a path parameter, the path parameter must refer to the application in which the code is running; otherwise, the parameter is ignored and configuration information for the currently-running application is returned.

Escribir.- Writing. Puede usar uno de los Save métodos para escribir información de configuración.You use one of the Save methods to write configuration information. Tenga en cuenta que el usuario o proceso que escribe debe tener los permisos siguientes:Note that the user or process that writes must have the following permissions: -Permiso de escritura en el archivo de configuración y el directorio en el nivel de la jerarquía de configuración actual.- Write permission on the configuration file and directory at the current configuration hierarchy level. : Permisos de lectura en todos los archivos de configuración.- Read permissions on all the configuration files.

Constructores

ConfigurationSection()

Inicializa una nueva instancia de la clase ConfigurationSection.Initializes a new instance of the ConfigurationSection class.

Propiedades

CurrentConfiguration

Obtiene una referencia a la instancia de Configuration de nivel superior que representa la jerarquía de configuración a la que pertenece la instancia actual de ConfigurationElement.Gets a reference to the top-level Configuration instance that represents the configuration hierarchy that the current ConfigurationElement instance belongs to.

(Heredado de ConfigurationElement)
ElementInformation

Obtiene un objeto ElementInformation que contiene la funcionalidad e información no personalizable del objeto ConfigurationElement.Gets an ElementInformation object that contains the non-customizable information and functionality of the ConfigurationElement object.

(Heredado de ConfigurationElement)
ElementProperty

Obtiene el objeto ConfigurationElementProperty que representa al propio objeto ConfigurationElement.Gets the ConfigurationElementProperty object that represents the ConfigurationElement object itself.

(Heredado de ConfigurationElement)
EvaluationContext

Obtiene el objeto ContextInformation para el objeto ConfigurationElement.Gets the ContextInformation object for the ConfigurationElement object.

(Heredado de ConfigurationElement)
HasContext

Obtiene un valor que indica si la propiedad CurrentConfiguration es null.Gets a value that indicates whether the CurrentConfiguration property is null.

(Heredado de ConfigurationElement)
Item[ConfigurationProperty]

Obtiene o establece una propiedad o atributo de este elemento de configuración.Gets or sets a property or attribute of this configuration element.

(Heredado de ConfigurationElement)
Item[String]

Obtiene o establece una propiedad, un atributo o un elemento secundario de este elemento de configuración.Gets or sets a property, attribute, or child element of this configuration element.

(Heredado de ConfigurationElement)
LockAllAttributesExcept

Obtiene la colección de atributos bloqueados.Gets the collection of locked attributes.

(Heredado de ConfigurationElement)
LockAllElementsExcept

Obtiene la colección de elementos bloqueados.Gets the collection of locked elements.

(Heredado de ConfigurationElement)
LockAttributes

Obtiene la colección de atributos bloqueados.Gets the collection of locked attributes.

(Heredado de ConfigurationElement)
LockElements

Obtiene la colección de elementos bloqueados.Gets the collection of locked elements.

(Heredado de ConfigurationElement)
LockItem

Obtiene o establece un valor que indica si el elemento está bloqueado.Gets or sets a value indicating whether the element is locked.

(Heredado de ConfigurationElement)
Properties

Obtiene la colección de propiedades.Gets the collection of properties.

(Heredado de ConfigurationElement)
SectionInformation

Obtiene un objeto SectionInformation que contiene la funcionalidad e información no personalizable del objeto ConfigurationSection.Gets a SectionInformation object that contains the non-customizable information and functionality of the ConfigurationSection object.

Métodos

DeserializeElement(XmlReader, Boolean)

Lee XML del archivo de configuración.Reads XML from the configuration file.

(Heredado de ConfigurationElement)
DeserializeSection(XmlReader)

Lee XML del archivo de configuración.Reads XML from the configuration file.

Equals(Object)

Compara la instancia actual de ConfigurationElement con el objeto especificado.Compares the current ConfigurationElement instance to the specified object.

(Heredado de ConfigurationElement)
GetHashCode()

Obtiene un valor único que representa la instancia actual de ConfigurationElement.Gets a unique value representing the current ConfigurationElement instance.

(Heredado de ConfigurationElement)
GetRuntimeObject()

Devuelve un objeto personalizado cuando se reemplaza en una clase derivada.Returns a custom object when overridden in a derived class.

GetTransformedAssemblyString(String)

Devuelve la versión transformada del nombre de ensamblado especificado.Returns the transformed version of the specified assembly name.

(Heredado de ConfigurationElement)
GetTransformedTypeString(String)

Devuelve la versión transformada del nombre de tipo especificado.Returns the transformed version of the specified type name.

(Heredado de ConfigurationElement)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
Init()

Establece el objeto ConfigurationElement en su estado inicial.Sets the ConfigurationElement object to its initial state.

(Heredado de ConfigurationElement)
InitializeDefault()

Se utiliza para inicializar un conjunto predeterminado de valores para el objeto ConfigurationElement.Used to initialize a default set of values for the ConfigurationElement object.

(Heredado de ConfigurationElement)
IsModified()

Indica si se ha modificado este elemento de configuración desde la última vez en que se guardo o cargó al implementarlo en una clase derivada.Indicates whether this configuration element has been modified since it was last saved or loaded when implemented in a derived class.

IsReadOnly()

Obtiene un valor que indica si el objeto ConfigurationElement es de solo lectura.Gets a value indicating whether the ConfigurationElement object is read-only.

(Heredado de ConfigurationElement)
ListErrors(IList)

Agrega a la lista que se pasa los errores de propiedad no válida que hay en este objeto ConfigurationElement y en todos los subelementos.Adds the invalid-property errors in this ConfigurationElement object, and in all subelements, to the passed list.

(Heredado de ConfigurationElement)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
OnDeserializeUnrecognizedAttribute(String, String)

Obtiene un valor que indica si se ha encontrado un atributo desconocido durante la deserialización.Gets a value indicating whether an unknown attribute is encountered during deserialization.

(Heredado de ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Obtiene un valor que indica si se ha encontrado un elemento desconocido durante la deserialización.Gets a value indicating whether an unknown element is encountered during deserialization.

(Heredado de ConfigurationElement)
OnRequiredPropertyNotFound(String)

Se inicia una excepción cuando no se encuentra una propiedad necesaria.Throws an exception when a required property is not found.

(Heredado de ConfigurationElement)
PostDeserialize()

Se llama a este método después de la deserialización.Called after deserialization.

(Heredado de ConfigurationElement)
PreSerialize(XmlWriter)

Se llama a este método antes de la serialización.Called before serialization.

(Heredado de ConfigurationElement)
Reset(ConfigurationElement)

Restablece el estado interno del objeto ConfigurationElement, incluyendo los bloqueos y las colecciones de propiedades.Resets the internal state of the ConfigurationElement object, including the locks and the properties collections.

(Heredado de ConfigurationElement)
ResetModified()

Restablece el valor del método IsModified() en false cuando se implementa en una clase derivada.Resets the value of the IsModified() method to false when implemented in a derived class.

SerializeElement(XmlWriter, Boolean)

Escribe el contenido de este elemento de configuración en el archivo de configuración cuando se implementa en una clase derivada.Writes the contents of this configuration element to the configuration file when implemented in a derived class.

(Heredado de ConfigurationElement)
SerializeSection(ConfigurationElement, String, ConfigurationSaveMode)

Crea una cadena XML que contiene una vista separada del objeto ConfigurationSection como una sección única para escribir en un archivo.Creates an XML string containing an unmerged view of the ConfigurationSection object as a single section to write to a file.

SerializeToXmlElement(XmlWriter, String)

Escribe las etiquetas externas de este elemento de configuración en el archivo de configuración cuando se implementa en una clase derivada.Writes the outer tags of this configuration element to the configuration file when implemented in a derived class.

(Heredado de ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Establece una propiedad en el valor especificado.Sets a property to the specified value.

(Heredado de ConfigurationElement)
SetReadOnly()

Establece la propiedad IsReadOnly() para el objeto ConfigurationElement y todos los subelementos.Sets the IsReadOnly() property for the ConfigurationElement object and all subelements.

(Heredado de ConfigurationElement)
ShouldSerializeElementInTargetVersion(ConfigurationElement, String, FrameworkName)

Indica si se debe serializar el elemento especificado cuando la jerarquía de objetos de configuración se serializa para la versión de destino especificada de .NET Framework.NET Framework.Indicates whether the specified element should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.NET Framework.

ShouldSerializePropertyInTargetVersion(ConfigurationProperty, String, FrameworkName, ConfigurationElement)

Indica si se debe serializar la propiedad especificada cuando la jerarquía de objetos de configuración se serializa para la versión de destino especificada de .NET Framework.NET Framework.Indicates whether the specified property should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.NET Framework.

ShouldSerializeSectionInTargetVersion(FrameworkName)

Indica si se debe serializar la instancia actual de ConfigurationSection cuando la jerarquía de objetos de configuración se serializa para la versión de destino especificada de .NET Framework.NET Framework.Indicates whether the current ConfigurationSection instance should be serialized when the configuration object hierarchy is serialized for the specified target version of the .NET Framework.NET Framework.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Modifica el objeto ConfigurationElement para quitar todos los valores que no se deben guardar.Modifies the ConfigurationElement object to remove all values that should not be saved.

(Heredado de ConfigurationElement)

Se aplica a

Consulte también: