Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase Configuration

 

Publicado: octubre de 2016

Representa un archivo de configuración que se aplica a un equipo determinado, aplicación o recurso. Esta clase no puede heredarse.

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

System.Object
  System.Configuration.Configuration

public sealed class Configuration

NombreDescripción
System_CAPS_pubpropertyAppSettings

Obtiene la AppSettingsSection sección de configuración de objeto que se aplica a esta Configuration objeto.

System_CAPS_pubpropertyAssemblyStringTransformer

Especifica a un delegado de función que se utiliza para transformar las cadenas de ensamblado en archivos de configuración.

System_CAPS_pubpropertyConnectionStrings

Obtiene un ConnectionStringsSection objeto de sección de configuración que se aplica a esta Configuration objeto.

System_CAPS_pubpropertyEvaluationContext

Obtiene el objeto ContextInformation para el objeto Configuration.

System_CAPS_pubpropertyFilePath

Obtiene la ruta de acceso física al archivo de configuración representado por este Configuration objeto.

System_CAPS_pubpropertyHasFile

Obtiene un valor que indica si existe un archivo para el recurso representado por este Configuration objeto.

System_CAPS_pubpropertyLocations

Obtiene las ubicaciones definidas dentro de este Configuration objeto.

System_CAPS_pubpropertyNamespaceDeclared

Obtiene o establece un valor que indica si el archivo de configuración tiene un espacio de nombres XML.

System_CAPS_pubpropertyRootSectionGroup

Obtiene la raíz de ConfigurationSectionGroup para este Configuration objeto.

System_CAPS_pubpropertySectionGroups

Obtiene una colección de los grupos de sección que define esta configuración.

System_CAPS_pubpropertySections

Obtiene una colección de las secciones definidas por este Configuration objeto.

System_CAPS_pubpropertyTargetFramework

Especifica la versión de .NET Framework de destino cuando una versión anterior a la actual está dirigida.

System_CAPS_pubpropertyTypeStringTransformer

Especifica a un delegado de función que se usa para transformar las cadenas de tipo en archivos de configuración.

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetSection(String)

Devuelve el objeto ConfigurationSection especificado.

System_CAPS_pubmethodGetSectionGroup(String)

Obtiene la clase ConfigurationSectionGroup objeto.

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodSave()

Escribe los valores de configuración dentro de este Configuration objeto en el archivo de configuración XML actual.

System_CAPS_pubmethodSave(ConfigurationSaveMode)

Escribe los valores de configuración dentro de este Configuration objeto en el archivo de configuración XML actual.

System_CAPS_pubmethodSave(ConfigurationSaveMode, Boolean)

Escribe los valores de configuración dentro de este Configuration objeto en el archivo de configuración XML actual.

System_CAPS_pubmethodSaveAs(String)

Escribe los valores de configuración dentro de este Configuration objeto en el archivo de configuración XML especificado.

System_CAPS_pubmethodSaveAs(String, ConfigurationSaveMode)

Escribe los valores de configuración dentro de este Configuration objeto en el archivo de configuración XML especificado.

System_CAPS_pubmethodSaveAs(String, ConfigurationSaveMode, Boolean)

Escribe los valores de configuración dentro de este Configuration objeto en el archivo de configuración XML especificado.

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

Opciones de configuración se almacenan en una jerarquía de archivos de configuración. El Configuration instancia de la clase representa la vista combinada de las opciones de configuración de todos los archivos 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 un sitio Web. La entidad lógica puede existir en el equipo local o en un servidor remoto. Para obtener información acerca de los archivos de configuración, consulte Configurar aplicaciones con archivos de configuración y ASP.NET Configuration Files.

Cuando no existe ningún archivo de configuración para una entidad especificada, el Configuration objeto representa la configuración predeterminada que define el archivo Machine.config.

Puede obtener un Configuration objeto mediante las clases siguientes:

Los nombres de los métodos que devuelven un Configuration objeto comienzan con "Abrir".

También puede generar un archivo de configuración que representa las opciones de configuración en un Configuration objeto. Para ello, use uno de estos métodos:

  • Llame a la Save método para crear un nuevo archivo de configuración.

  • Llame a la SaveAs método para generar un nuevo archivo de configuración en otra ubicación.

Los nombres de los métodos que crean archivos de configuración comienzan con "Guardar".

System_CAPS_noteNota

Para habilitar el acceso a los valores de configuración en un equipo remoto, utilice la herramienta de línea de comandos de Aspnet_regiis. Para obtener más información acerca de esta herramienta, consulte ASP.NET IIS Registration Tool (Aspnet_regiis.exe). Para obtener información sobre cómo crear y tener acceso a los valores de configuración personalizados distintos de las secciones intrínsecas incluidas en .NET Framework, consulte ConfigurationSection.

Notas para implementadores:

La Configuration clase proporciona acceso mediante programación para editar archivos de configuración. Utilice uno de los métodos "Open" proporcionados por la WebConfigurationManager clase para las aplicaciones Web o por la ConfigurationManager clase para las aplicaciones cliente. Estos métodos devuelven un Configuration object, que a su vez proporciona los métodos y propiedades que controlan los archivos de configuración subyacentes. Puede tener acceso a estos archivos para leer o escribir información de configuración.

Utiliza el GetSection método o GetSectionGroup método para leer información de configuración. Tenga en cuenta que el usuario o proceso que lee debe tener los permisos siguientes:

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

  • Permisos de lectura en todas las principales de los archivos de configuración.

Si la aplicación necesita acceso de sólo lectura a su propia configuración, se recomienda que utilice la GetSection sobrecargas de método para las aplicaciones Web. Para la aplicación cliente, utilice la GetSection método.

Estos métodos proporcionan acceso a los valores de configuración almacenada en caché de la aplicación actual, que tiene un rendimiento mejor que la Configuration clase.

System_CAPS_noteNota

Si utiliza una variable static GetSection método que toma un parámetro de ruta de acceso, el parámetro de ruta de acceso debe hacer referencia a la aplicación en el que se ejecuta el código, de lo contrario, se omite el parámetro y se devuelve la información de configuración de la aplicación en ejecución.

Utilice uno de los Save métodos para escribir información de configuración. Tenga en cuenta que el usuario o proceso que escribe debe tener los permisos siguientes:

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

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

En el ejemplo de código siguiente se muestra cómo utilizar el Configuration clase para obtener acceso a elementos de archivo de configuración.

using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Globalization;
using System.ComponentModel;
using System.Collections.Specialized;

// Before compiling this application, 
// remember to reference the System.Configuration assembly in your project. 
#region CustomSection class

// Define a custom section. This class is used to
// populate the configuration file.
// It creates the following custom section:
//  <CustomSection name="Contoso" url="http://www.contoso.com" port="8080" />.
public sealed class CustomSection : ConfigurationSection
{

    public CustomSection()
    {

    }


    [ConfigurationProperty("name",
     DefaultValue = "Contoso",
     IsRequired = true,
     IsKey = true)]
    public string Name
    {
        get
        {
            return (string)this["name"];
        }
        set
        {
            this["name"] = value;
        }
    }

    [ConfigurationProperty("url",
        DefaultValue = "http://www.contoso.com",
        IsRequired = true)]
    [RegexStringValidator(@"\w+:\/\/[\w.]+\S*")]
    public string Url
    {
        get
        {
            return (string)this["url"];
        }
        set
        {
            this["url"] = value;
        }
    }

    [ConfigurationProperty("port",
        DefaultValue = (int)8080,
        IsRequired = false)]
    [IntegerValidator(MinValue = 0,
        MaxValue = 8080, ExcludeRange = false)]
    public int Port
    {
        get
        {
            return (int)this["port"];
        }
        set
        {
            this["port"] = value;
        }
    }



}

#endregion

#region Using Configuration Class
class UsingConfigurationClass
{


    // Show how to create an instance of the Configuration class
    // that represents this application configuration file.  
    static void CreateConfigurationFile()
    {
        try
        {

            // Create a custom configuration section.
            CustomSection customSection = new CustomSection();

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

            // Create the custom section entry  
            // in <configSections> group and the 
            // related target section in <configuration>.
            if (config.Sections["CustomSection"] == null)
            {
                config.Sections.Add("CustomSection", customSection);
            }

            // Create and add an entry to appSettings section.

            string conStringname="LocalSqlServer";
            string conString = @"data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true";
            string providerName="System.Data.SqlClient";

            ConnectionStringSettings connStrSettings = new ConnectionStringSettings();
            connStrSettings.Name = conStringname;
            connStrSettings.ConnectionString= conString;
            connStrSettings.ProviderName = providerName;

            config.ConnectionStrings.ConnectionStrings.Add(connStrSettings);

            // Add an entry to appSettings section.
            int appStgCnt =
                ConfigurationManager.AppSettings.Count;
            string newKey = "NewKey" + appStgCnt.ToString();

            string newValue = DateTime.Now.ToLongDateString() +
              " " + DateTime.Now.ToLongTimeString();

            config.AppSettings.Settings.Add(newKey, newValue);

            // Save the configuration file.
            customSection.SectionInformation.ForceSave = true;
            config.Save(ConfigurationSaveMode.Full);

            Console.WriteLine("Created configuration file: {0}",
                config.FilePath);

        }
        catch (ConfigurationErrorsException err)
        {
            Console.WriteLine("CreateConfigurationFile: {0}", err.ToString());
        }

    }

    // Show how to use the GetSection(string) method.
    static void GetCustomSection()
    {
        try
        {

            CustomSection customSection;

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

            customSection =
                config.GetSection("CustomSection") as CustomSection;

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

        }
        catch (ConfigurationErrorsException err)
        {
            Console.WriteLine("Using GetSection(string): {0}", err.ToString());
        }

    }


    // Show how to use different modalities to save 
    // a configuration file.
    static void SaveConfigurationFile()
    {
        try
        {

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

            // Save the full configuration file and force save even if the file was not modified.
            config.SaveAs("MyConfigFull.config", ConfigurationSaveMode.Full, true);
            Console.WriteLine("Saved config file as MyConfigFull.config using the mode: {0}",
                ConfigurationSaveMode.Full.ToString());

            config =
                    ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.None) as Configuration;

            // Save only the part of the configuration file that was modified. 
            config.SaveAs("MyConfigModified.config", ConfigurationSaveMode.Modified, true);
            Console.WriteLine("Saved config file as MyConfigModified.config using the mode: {0}",
                ConfigurationSaveMode.Modified.ToString());

            config =
                    ConfigurationManager.OpenExeConfiguration(
                    ConfigurationUserLevel.None) as Configuration;

            // Save the full configuration file.
            config.SaveAs("MyConfigMinimal.config");
            Console.WriteLine("Saved config file as MyConfigMinimal.config using the mode: {0}",
                ConfigurationSaveMode.Minimal.ToString());

        }
        catch (ConfigurationErrorsException err)
        {
            Console.WriteLine("SaveConfigurationFile: {0}", err.ToString());
        }

    }


    // Show how use the AppSettings and ConnectionStrings 
    // properties.
    static void GetSections(string section)
    {
        try
        {

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

            // Get the selected section.
            switch (section)
            {
                case "appSettings":
                    try
                    {
                        AppSettingsSection appSettings =
                            config.AppSettings as AppSettingsSection;
                        Console.WriteLine("Section name: {0}",
                                appSettings.SectionInformation.SectionName);

                        // Get the AppSettings section elements.
                        Console.WriteLine();
                        Console.WriteLine("Using AppSettings property.");
                        Console.WriteLine("Application settings:");
                        // Get the KeyValueConfigurationCollection 
                        // from the configuration.
                        KeyValueConfigurationCollection settings =
                          config.AppSettings.Settings;

                        // Display each KeyValueConfigurationElement.
                        foreach (KeyValueConfigurationElement keyValueElement in settings)
                        {
                            Console.WriteLine("Key: {0}", keyValueElement.Key);
                            Console.WriteLine("Value: {0}", keyValueElement.Value);
                            Console.WriteLine();
                        }
                    }
                    catch (ConfigurationErrorsException e)
                    {
                        Console.WriteLine("Using AppSettings property: {0}",
                            e.ToString());
                    }
                    break;

                case "connectionStrings":
                    ConnectionStringsSection
                        conStrSection =
                        config.ConnectionStrings as ConnectionStringsSection;
                    Console.WriteLine("Section name: {0}",
                        conStrSection.SectionInformation.SectionName);

                    try
                    {
                        if (conStrSection.ConnectionStrings.Count != 0)
                        {
                            Console.WriteLine();
                            Console.WriteLine("Using ConnectionStrings property.");
                            Console.WriteLine("Connection strings:");

                            // Get the collection elements.
                            foreach (ConnectionStringSettings connection in
                              conStrSection.ConnectionStrings)
                            {
                                string name = connection.Name;
                                string provider = connection.ProviderName;
                                string connectionString = connection.ConnectionString;

                                Console.WriteLine("Name:               {0}",
                                  name);
                                Console.WriteLine("Connection string:  {0}",
                                  connectionString);
                                Console.WriteLine("Provider:            {0}",
                                   provider);
                            }
                        }
                    }
                    catch (ConfigurationErrorsException e)
                    {
                        Console.WriteLine("Using ConnectionStrings property: {0}",
                            e.ToString());
                    }
                    break;

                default:
                    Console.WriteLine(
                        "GetSections: Unknown section (0)", section);
                    break;
            }

        }
        catch (ConfigurationErrorsException err)
        {
            Console.WriteLine("GetSections: (0)", err.ToString());
        }

    }

    // Show how to use the Configuration object properties 
    // to obtain configuration file information.
    static void GetConfigurationInformation()
    {
        try
        {

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

            Console.WriteLine("Reading configuration information:");

            ContextInformation evalContext =
                config.EvaluationContext as ContextInformation;
            Console.WriteLine("Machine level: {0}",
                evalContext.IsMachineLevel.ToString());

            string filePath = config.FilePath;
            Console.WriteLine("File path: {0}", filePath);

            bool hasFile = config.HasFile;
            Console.WriteLine("Has file: {0}", hasFile.ToString());


            ConfigurationSectionGroupCollection
                groups = config.SectionGroups;
            Console.WriteLine("Groups: {0}", groups.Count.ToString());
            foreach (ConfigurationSectionGroup group in groups)
            {
                Console.WriteLine("Group Name: {0}", group.Name);
               // Console.WriteLine("Group Type: {0}", group.Type);
            }


            ConfigurationSectionCollection
                sections = config.Sections;
            Console.WriteLine("Sections: {0}", sections.Count.ToString());

        }
        catch (ConfigurationErrorsException err)
        {
            Console.WriteLine("GetConfigurationInformation: {0}",err.ToString());
        }

    }

#endregion 

#region Application Main
    //*** User Interaction Class ***//

    // Obtain user's input and provide feedback.
    // This class contains the application Main() function.
    // It calls the ConfigurationManager methods based 
    // on the user's selection.
    class ApplicationMain
    {
        // Display user's menu.
        public static void UserMenu()
        {
            string applicationName =
                Environment.GetCommandLineArgs()[0] + ".exe";
            StringBuilder buffer = new StringBuilder();

            buffer.AppendLine("Application: " + applicationName);
            buffer.AppendLine("Make your selection.");
            buffer.AppendLine("?    -- Display help.");
            buffer.AppendLine("Q,q  -- Exit the application.");

            buffer.Append("1    -- Instantiate the");
            buffer.AppendLine(" Configuration class.");

            buffer.Append("2    -- Use GetSection(string) to read ");
            buffer.AppendLine(" a custom section.");

            buffer.Append("3    -- Use SaveAs methods");
            buffer.AppendLine(" to save the configuration file.");

            buffer.Append("4    -- Use AppSettings property to read");
            buffer.AppendLine(" the appSettings section.");
            buffer.Append("5    -- Use ConnectionStrings property to read");
            buffer.AppendLine(" the connectionStrings section.");

            buffer.Append("6    -- Use Configuration class properties");
            buffer.AppendLine(" to obtain configuration information.");

            Console.Write(buffer.ToString());
        }

        // Obtain user's input and provide
        // feedback.
        static void Main(string[] args)
        {
            // Define user selection string.
            string selection;

            // Get the name of the application.
            string appName =
                Environment.GetCommandLineArgs()[0];


            // Get user selection.
            while (true)
            {

                UserMenu();
                Console.Write("> ");
                selection = Console.ReadLine();
                if (selection != string.Empty)
                    break;
            }

            while (selection.ToLower() != "q")
            {
                // Process user's input.
                switch (selection)
                {
                    case "1":
                        // Show how to create an instance of the Configuration class.
                        CreateConfigurationFile();
                        break;

                    case "2":
                        // Show how to use GetSection(string) method.
                        GetCustomSection();
                        break;

                    case "3":
                        // Show how to use ConnectionStrings.
                        SaveConfigurationFile();
                        break;

                    case "4":
                        // Show how to use the AppSettings property.
                        GetSections("appSettings");
                        break;

                    case "5":
                        // Show how to use the ConnectionStrings property.
                        GetSections("connectionStrings");
                        break;

                    case "6":
                        // Show how to obtain configuration file information.
                        GetConfigurationInformation();
                        break;


                    default:
                        UserMenu();
                        break;
                }
                Console.Write("> ");
                selection = Console.ReadLine();
            }
        }
    }
#endregion

}

.NET Framework
Disponible desde 2.0

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: