ConfigurationProperty Clase

Definición

Representa un atributo o un elemento secundario de un elemento de configuración.Represents an attribute or a child of a configuration element. No se puede heredar esta clase.This class cannot be inherited.

Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código.

public ref class ConfigurationProperty sealed
public sealed class ConfigurationProperty
type ConfigurationProperty = class
Public NotInheritable Class ConfigurationProperty
Herencia
ConfigurationProperty

Ejemplos

  1. En el ejemplo de código siguiente se muestra cómo utilizar el ConfigurationProperty al crear una sección personalizada.The following code example shows how to use the ConfigurationProperty when you create a custom section.
using System;
using System.Configuration;
using System.Collections;
using System.ComponentModel;

namespace ConfigurationPropertyExample
{
    // Define a custom section.
    // Shows how to use the ConfigurationProperty
    // class when defining a custom section.
    public sealed class CustomSection : ConfigurationSection
    {
        // The collection (property bag) that contains 
        // the section properties.
        private static ConfigurationPropertyCollection _Properties;

        // The FileName property.
        private static ConfigurationProperty _FileName;

        // The Alias property.
        private static ConfigurationProperty _Alias;

        // The MaxUsers property.
        private static ConfigurationProperty _MaxUsers;

        // The MaxIdleTime property.
        private static ConfigurationProperty _MaxIdleTime;

        // CustomSection constructor.
        static CustomSection()
        {
            // Initialize the _FileName property
            _FileName =
                new ConfigurationProperty("fileName",
                typeof(string), "default.txt");

            // Initialize the _MaxUsers property
            _MaxUsers =
                new ConfigurationProperty("maxUsers",
                typeof(long), (long)1000,
                ConfigurationPropertyOptions.None);

            // Initialize the _MaxIdleTime property
            TimeSpan minTime = TimeSpan.FromSeconds(30);
            TimeSpan maxTime = TimeSpan.FromMinutes(5);

            ConfigurationValidatorBase _TimeSpanValidator =
                new TimeSpanValidator(minTime, maxTime, false);

            _MaxIdleTime =
                new ConfigurationProperty("maxIdleTime",
                typeof(TimeSpan), TimeSpan.FromMinutes(5),
                TypeDescriptor.GetConverter(typeof(TimeSpan)),
                _TimeSpanValidator,
                ConfigurationPropertyOptions.IsRequired,
                "[Description:This is the max idle time.]");

            // Initialize the _Alias property
            _Alias =
                new ConfigurationProperty("alias",
                typeof(string), "alias.txt");

            // Initialize the Property collection.
            _Properties = new ConfigurationPropertyCollection();
            _Properties.Add(_FileName);
            _Properties.Add(_Alias);
            _Properties.Add(_MaxUsers);
            _Properties.Add(_MaxIdleTime);
        }

        // Return the initialized property bag
        // for the configuration element.
        protected override ConfigurationPropertyCollection Properties
        {
            get
            {
                return _Properties;
            }
        }

        // Clear the property.
        public void ClearCollection()
        {
            Properties.Clear();
        }

        // Remove an element from the property collection.
        public void RemoveCollectionElement(string elName)
        {
            Properties.Remove(elName);
        }

        // Get the property collection enumerator.
        public IEnumerator GetCollectionEnumerator()
        {
            return (Properties.GetEnumerator());
        }

        [StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
            MinLength = 1, MaxLength = 60)]
        public string FileName
        {
            get
            {
                return (string)this["fileName"];
            }
            set
            {
                this["fileName"] = value;
            }
        }

        [StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
            MinLength = 1, MaxLength = 60)]
        public string Alias
        {
            get
            {
                return (string)this["alias"];
            }
            set
            {
                this["alias"] = value;
            }
        }

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

        public TimeSpan MaxIdleTime
        {
            get
            {
                return (TimeSpan)this["maxIdleTime"];
            }
            set
            {
                this["maxIdleTime"] = value;
            }
        }
    }
}
Imports System.Configuration
Imports System.Collections
Imports System.ComponentModel

' Define a custom section.
' Shows how to use the ConfigurationProperty
' class when defining a custom section.
Public NotInheritable Class CustomSection
    Inherits ConfigurationSection

    ' The collection (property bag) that contains 
    ' the section properties.
    Private Shared _Properties As ConfigurationPropertyCollection

    ' The FileName property.
    Private Shared _FileName As ConfigurationProperty

    ' The Alias property.
    Private Shared _Alias As ConfigurationProperty

    ' The MasUsers property.
    Private Shared _MaxUsers As ConfigurationProperty

    ' The MaxIdleTime property.
    Private Shared _MaxIdleTime As ConfigurationProperty

    ' CustomSection constructor.
    Shared Sub New()

        ' Initialize the _FileName property
        _FileName = New ConfigurationProperty( _
            "fileName", GetType(String), "default.txt")

        ' Initialize the _MaxUsers property
        _MaxUsers = New ConfigurationProperty( _
            "maxUsers", GetType(Long), 1000L, _
            ConfigurationPropertyOptions.None)

        ' Initialize the _MaxIdleTime property
        Dim minTime As TimeSpan = TimeSpan.FromSeconds(30)
        Dim maxTime As TimeSpan = TimeSpan.FromMinutes(5)
        Dim _TimeSpanValidator = _
            New TimeSpanValidator(minTime, maxTime, False)

        _MaxIdleTime = New ConfigurationProperty( _
            "maxIdleTime", GetType(TimeSpan), _
            TimeSpan.FromMinutes(5), _
            TypeDescriptor.GetConverter(GetType(TimeSpan)), _
            _TimeSpanValidator, _
            ConfigurationPropertyOptions.IsRequired, _
            "[Description:This is the max idle time.]")

        ' Initialize the _Alias property
        _Alias = New ConfigurationProperty( _
            "alias", GetType(String), "alias.txt")

        ' Property collection initialization.
        ' The collection (property bag) that contains 
        ' the properties is declared as:
        ' ConfigurationPropertyCollection _Properties;
        _Properties = New ConfigurationPropertyCollection()
        _Properties.Add(_FileName)
        _Properties.Add(_Alias)
        _Properties.Add(_MaxUsers)
        _Properties.Add(_MaxIdleTime)

    End Sub

    ' Return the initialized property bag
    ' for the configuration element.
    Protected Overrides ReadOnly Property Properties() _
    As ConfigurationPropertyCollection
        Get
            Return _Properties
        End Get
    End Property

    <StringValidator(InvalidCharacters:= _
    " ~!@#$%^&*()[]{}/;'""|\", MinLength:=1, _
    MaxLength:=60)> _
    Public Property FileName() As String
        Get
            Return CStr(Me("fileName"))
        End Get
        Set(ByVal value As String)
            Me("fileName") = value
        End Set
    End Property

    <StringValidator(InvalidCharacters:= _
    " ~!@#$%^&*()[]{}/;'""|\", MinLength:=1, _
    MaxLength:=60)> _
    Public Property [Alias]() As String
        Get
            Return CStr(Me("alias"))
        End Get
        Set(ByVal value As String)
            Me("alias") = 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

    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 siguiente es un extracto del archivo de configuración que usa el código del ejemplo anterior.The following is an excerpt of the configuration file used by the code in the previous example.

<configuration>
  <configSections>
    <section name="CustomSection" type="ConfigurationPropertyExample.CustomSection, ConfigurationPropertyExample" 
      allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" 
      restartOnExternalChanges="true" />
  </configSections>
  <CustomSection fileName="override.txt" alias="alias.txt" 
    maxUsers="1000" maxIdleTime="00:05:00" />
</configuration>

En el ejemplo siguiente se muestra cómo crear la sección anterior en el código.The following example shows how to create the previous section in code.

// Define a custom section programmatically.
static void CreateSection()
{
    try
    {
        CustomSection customSection;

        // Get the current configuration file.
        System.Configuration.Configuration config =
                ConfigurationManager.OpenExeConfiguration(
                ConfigurationUserLevel.None);

        // Create the section entry  
        // in the <configSections> and the 
        // related target section in <configuration>.
        // Call it "CustomSection2" since the file in this 
        // example already has "CustomSection".
        if (config.Sections["CustomSection"] == null)
        {
            customSection = new CustomSection();
            config.Sections.Add("CustomSection2", customSection);
            customSection.SectionInformation.ForceSave = true;
            config.Save(ConfigurationSaveMode.Full);
        }
    }
    catch (ConfigurationErrorsException err)
    {
        Console.WriteLine(err.ToString());
    }
}
' Create a custom section.
Shared Sub CreateSection()
    Try
        Dim customSection As CustomSection

        ' Get the current configuration file.
        Dim config As System.Configuration.Configuration = _
            ConfigurationManager.OpenExeConfiguration( _
            ConfigurationUserLevel.None)

        ' Create the section entry  
        ' in the <configSections> and the 
        ' related target section in <configuration>.
        ' Since the config file already has "CustomSection",
        ' call this one "CustomSection2".
        If config.Sections("CustomSection") Is Nothing Then
            customSection = New CustomSection()
            config.Sections.Add("CustomSection", customSection)
            customSection.SectionInformation.ForceSave = True
            config.Save(ConfigurationSaveMode.Full)
        End If
    Catch err As ConfigurationErrorsException
        Console.WriteLine(err.ToString())
    End Try
End Sub

Comentarios

En el caso de una ConfigurationElementsimple, como la CustomSection que se muestra en el ejemplo siguiente, los objetos ConfigurationProperty representan atributos como fileName.In the case of a simple ConfigurationElement, such as the CustomSection shown in the next example, the ConfigurationProperty objects represent attributes such as fileName.

En el caso de elementos de configuración más complejos, como una sección que contiene subsecciones, por ejemplo authentication, los objetos ConfigurationProperty pueden representar objetos ConfigurationElement y atributos.In the case of more complex configuration elements such as a section containing subsections, for instance authentication, the ConfigurationProperty objects can represent ConfigurationElement objects as well as attributes.

La clase ConfigurationPropertyCollection representa la colección de los objetos ConfigurationProperty que pueden ser atributos u objetos ConfigurationElement de un elemento de configuración.The ConfigurationPropertyCollection class represents the collection of the ConfigurationProperty objects that can be either attributes or ConfigurationElement objects of a configuration element.

La clase ConfigurationProperty representa un valor de configuración individual.The ConfigurationProperty class represents an individual configuration setting. Esta clase permite obtener o establecer el nombre, el tipo y el valor predeterminado para una entidad de configuración determinada (atributo o elemento) y especificar si el atributo es obligatorio, es una clave de elemento o representa una colección de elementos predeterminada.This class allows you to get or set the name, type, and default value for a particular configuration entity (attribute or element) and specify whether the attribute is required, is an element key, or represents a default element collection.

Notas a los desarrolladores de herederos

Cada objeto ConfigurationElement crea una colección de ConfigurationPropertyCollection interna de objetos ConfigurationProperty que representa los atributos de elemento o una colección de elementos secundarios.Every ConfigurationElement object creates an internal ConfigurationPropertyCollection collection of ConfigurationProperty objects that represents either the element attributes or a collection of child elements.

La información y la funcionalidad no personalizables están contenidas en un objeto ElementInformation proporcionado por la propiedad ElementInformation.Non-customizable information and functionality is contained by an ElementInformation object provided by the ElementInformation property.

Puede usar un modelo de codificación de programación o declarativo (con atributos) para crear un elemento de configuración personalizado.You can use a programmatic or a declarative (attributed) coding model to create a custom configuration element.

-Modelo de programación.- Programmatic Model. Este modelo requiere que se cree una propiedad para cada atributo de elemento para obtener o establecer su valor y agregarlo al contenedor de propiedades interno de la clase base ConfigurationElement subyacente.This model requires that you create a property for each element attribute to get and/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 elemento mediante una propiedad y decorarlo con atributos.This simpler model, also called attributed model, allows you to define an element attribute by using a property and decorate 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 elemento automáticamente y realiza la inicialización necesaria.With this information, obtained through reflection, the ASP.NET configuration system creates the element property objects for you and performs the required initialization.

Constructores

ConfigurationProperty(String, Type)

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

ConfigurationProperty(String, Type, Object)

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

ConfigurationProperty(String, Type, Object, ConfigurationPropertyOptions)

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

ConfigurationProperty(String, Type, Object, TypeConverter, ConfigurationValidatorBase, ConfigurationPropertyOptions)

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

ConfigurationProperty(String, Type, Object, TypeConverter, ConfigurationValidatorBase, ConfigurationPropertyOptions, String)

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

Propiedades

Converter

Obtiene el objeto TypeConverter que se ha utilizado para convertir este objeto ConfigurationProperty en la representación XML que se escribe en el archivo de configuración.Gets the TypeConverter used to convert this ConfigurationProperty into an XML representation for writing to the configuration file.

DefaultValue

Obtiene el valor predeterminado para esta propiedad ConfigurationProperty.Gets the default value for this ConfigurationProperty property.

Description

Obtiene la descripción asociada al objeto ConfigurationProperty.Gets the description associated with the ConfigurationProperty.

IsAssemblyStringTransformationRequired

Indica si el nombre de ensamblado para la propiedad de configuración requiere la transformación cuando se serializa para una versión anterior de .NET Framework.NET Framework.Indicates whether the assembly name for the configuration property requires transformation when it is serialized for an earlier version of the .NET Framework.NET Framework.

IsDefaultCollection

Obtiene un valor que indica si la propiedad es la colección predeterminada de un elemento.Gets a value that indicates whether the property is the default collection of an element.

IsKey

Obtiene un valor que indica si este objeto ConfigurationProperty es la clave para el objeto ConfigurationElement contenedor.Gets a value indicating whether this ConfigurationProperty is the key for the containing ConfigurationElement object.

IsRequired

Obtiene un valor que indica si es necesario este objeto ConfigurationProperty.Gets a value indicating whether this ConfigurationProperty is required.

IsTypeStringTransformationRequired

Indica si el nombre de tipo para la propiedad de configuración requiere la transformación cuando se serializa para una versión anterior de .NET Framework.NET Framework.Indicates whether the type name for the configuration property requires transformation when it is serialized for an earlier version of the .NET Framework.NET Framework.

IsVersionCheckRequired

Indica si la sección de configuración principal de la propiedad de configuración se debe consultar en el momento de la serialización para determinar si la propiedad de configuración se debe serializar en XML.Indicates whether the configuration property's parent configuration section is queried at serialization time to determine whether the configuration property should be serialized into XML.

Name

Obtiene el nombre de ConfigurationProperty.Gets the name of this ConfigurationProperty.

Type

Obtiene el tipo de este objeto ConfigurationProperty.Gets the type of this ConfigurationProperty object.

Validator

Obtiene el validador ConfigurationValidatorAttribute que se utiliza para validar este objeto ConfigurationProperty.Gets the ConfigurationValidatorAttribute, which is used to validate this ConfigurationProperty object.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

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

(Heredado de Object)
MemberwiseClone()

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

(Heredado de Object)
ToString()

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

(Heredado de Object)

Se aplica a

Consulte también: