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)
Visual Basic (Declaración)
Public NotInheritable Class Configuration
Dim instance As Configuration
public sealed class Configuration
public ref class Configuration sealed
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:
Nota |
|---|
| 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.
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.
Nota |
|---|
| 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. |
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.
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 <configSections> and the
' related target section in <configuration>.
If config.Sections("CustomSection") Is Nothing Then
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)
End If
Catch err As ConfigurationErrorsException
Console.WriteLine(err.ToString())
End Try
End Sub 'CreateSection
// 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.
NotInheritable Public Class CustomSection
Inherits ConfigurationSection
Public Enum Permissions
FullControl = 0
Modify = 1
ReadExecute = 2
Read = 3
Write = 4
SpecialPermissions = 5
End Enum 'Permissions
Public Sub New()
End Sub 'New
<ConfigurationProperty("fileName", _
DefaultValue:="default.txt"), _
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
<ConfigurationProperty("maxIdleTime", _
DefaultValue:="1:30:30")> _
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
<ConfigurationProperty("permission", _
DefaultValue:=Permissions.Read)> _
Public Property Permission() As Permissions
Get
Return CType(Me("permission"), Permissions)
End Get
Set(ByVal value As Permissions)
Me("permission") = Value
End Set
End Property
End Class 'CustomSection
// 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
Seguridad para subprocesos
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