Exportar (0) Imprimir
Expandir todo
Este tema aún no ha recibido ninguna valoración - Valorar este tema

Configuration (Clase)

Nota: esta clase es nueva en la versión 2.0 de .NET Framework.

Representa un archivo de configuración aplicable a un equipo, aplicación o recurso en concreto. Esta clase no se puede heredar.

Espacio de nombres: System.Configuration
Ensamblado: System.Configuration (en system.configuration.dll)

public sealed class Configuration
public final class Configuration
public final class Configuration

Una instancia de la clase Configuration representa la vista combinada de los valores de configuración que se aplican a una entidad física concreta, como un equipo, o a una entidad lógica, como una aplicación o sitio Web. La entidad lógica especificada puede existir en el equipo local o en un servidor remoto.

Cuando no existe ningún archivo de configuración para una entidad especificada, el objeto Configuration representa los valores de configuración predeterminados, tal como los define el archivo Machine.config.

Se puede obtener acceso a un objeto Configuration utilizando uno de los métodos de configuración abierta que definen las clases siguientes:

Para generar un archivo de configuración que represente los valores de configuración heredados para una entidad especificada, utilice uno de los métodos para guardar la configuración:

NotaNota

Para permitir el acceso a los valores de configuración en un equipo remoto, utilice la herramienta de línea de comandos Aspnet_regiis. Para obtener más información sobre esta herramienta, vea Herramienta Registro de IIS en ASP.NET (Aspnet_regiis.exe). Para obtener información sobre la forma de crear y obtener acceso a los valores de configuración personalizados distintos de las secciones intrínsecas incluidas en .NET Framework, vea ConfigurationSection.

Notas para los implementadores Configuration es la clase que permite el acceso mediante programación para editar archivos de configuración. Se puede utilizar uno de los métodos abiertos proporcionados por WebConfigurationManager para las aplicaciones Web o por ConfigurationManager para las aplicaciones cliente. Estos métodos devuelven un objeto Configuration que, a su vez, proporciona los métodos y propiedades necesarios para controlar los archivos de configuración subyacentes. Puede obtener acceso de lectura o escritura a estos archivos, tal como se explica a continuación.

  • Lectura. Utilice el método GetSection o GetSectionGroup para leer información de configuración. Tenga en cuenta que, para poder leer, el usuario o el proceso deben contar con los permisos siguientes:

    • Permiso de lectura para el archivo de configuración del nivel de jerarquía de configuración actual.

    • Permisos de lectura para todos los archivos de configuración principal.

Si la aplicación necesita acceso de sólo lectura a su propia configuración, para las aplicaciones Web se recomienda utilizar las sobrecargas del método GetSection. Para el caso de las aplicaciones cliente, se recomienda el método GetSection. Estos métodos proporcionan acceso a los valores de configuración almacenados en memoria caché para la aplicación actual, cuyo rendimiento es mejor que el de la clase Configuration.
NotaNota

Si utiliza un método estático GetSection que tome un parámetro de ruta, dicho parámetro de ruta debe hacer referencia a la aplicación en la que se está ejecutando el código; de lo contrario, se omitirá el parámetro y se devolverá la información de configuración de la aplicación que se esté ejecutando en ese momento.

  • Escritura. Utilice uno de los métodos Save para escribir información de configuración. Tenga en cuenta que, para poder escribir, el usuario o el proceso deben contar con los permisos siguientes:

    • Permiso de escritura para el directorio y el archivo de configuración del nivel de jerarquía de configuración actual.

    • Permisos de lectura para todos los archivos de configuración.

En el ejemplo de código siguiente se muestra cómo utilizar la clase Configuration para crear un archivo de configuración que contenga una sección personalizada.

       
// Create a custom section.
static void CreateSection()
{
    try
    {

        CustomSection customSection;

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

        // Create the section entry  
        // in <configSections> and the 
        // related target section in <configuration>.
        if (config.Sections["CustomSection"] == null)
        {
            customSection = new CustomSection();
            config.Sections.Add("CustomSection", customSection);
            customSection.SectionInformation.ForceSave = true;
            config.Save(ConfigurationSaveMode.Full);

            Console.WriteLine("Section name: {0} created",
                customSection.SectionInformation.Name);

        }
    }
    catch (ConfigurationErrorsException err)
    {
        Console.WriteLine(err.ToString());
    }

}

La definición siguiente corresponde a la sección personalizada que se utiliza en el ejemplo anterior.


// Define a custom section.
public sealed class CustomSection :
    ConfigurationSection
{

    public enum Permissions
    {
        FullControl = 0,
        Modify = 1,
        ReadExecute = 2,
        Read = 3,
        Write = 4,
        SpecialPermissions = 5
    }

    public CustomSection()
    {

    }

    [ConfigurationProperty("fileName", 
        DefaultValue = "default.txt")]
    [StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
               MinLength = 1, MaxLength = 60)]
    public String FileName
    {
        get
        {
            return (String)this["fileName"];
        }
        set
        {
            this["fileName"] = value;
        }
    }
   
    [ConfigurationProperty("maxIdleTime", DefaultValue="1:30:30")]
    public TimeSpan MaxIdleTime
    {
        get
        {
            return (TimeSpan)this["maxIdleTime"];
        }
        set
        {
            this["maxIdleTime"] = value;
        }
    }
    

    [ConfigurationProperty("permission", 
        DefaultValue = Permissions.Read)]
    public Permissions Permission
    {
        get
        {
            return (Permissions)this["permission"];
        }

        set
        {
            this["permission"] = value;
        }

    }
  
}

A continuación se muestra un extracto de configuración que se utiliza en el ejemplo anterior.

<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <configSections>
    <section name="CustomSection" type="Samples.AspNet.CustomSection, 
      Configuration, Version=1.0.0.0, Culture=neutral, 
      PublicKeyToken=null" allowDefinition="Everywhere" 
      allowExeDefinition="MachineToApplication" 
      restartOnExternalChanges="true" />
  </configSections>
    <CustomSection fileName="default.txt" maxIdleTime="01:30:30"
      permission="Read" />

</configuration>
System.Object
  System.Configuration.Configuration
Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.