Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Configuration (Clase)

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

System.Object
  System.Configuration.Configuration

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

public sealed class Configuration

El tipo Configuration expone los siguientes miembros.

  NombreDescripción
Propiedad públicaAppSettingsObtiene la sección de configuración del objeto AppSettingsSection que se aplica a este objeto Configuration.
Propiedad públicaAssemblyStringTransformerEspecifica un delegado de función que se usa para transformar las cadenas de ensamblado en archivos de configuración.
Propiedad públicaConnectionStringsObtiene un objeto de sección de configuración ConnectionStringsSection que se aplica a este objeto Configuration.
Propiedad públicaEvaluationContextObtiene el objeto ContextInformation para el objeto Configuration.
Propiedad públicaFilePathObtiene la ruta de acceso física al archivo de configuración que representa este objeto Configuration.
Propiedad públicaHasFileObtiene un valor que indica si existe un archivo para el recurso representado por este objeto Configuration.
Propiedad públicaLocationsObtiene las ubicaciones que hay definidas en este objeto Configuration.
Propiedad públicaNamespaceDeclaredObtiene o establece un valor que indica si el archivo de configuración tiene un espacio de nombres XML.
Propiedad públicaRootSectionGroupObtiene el objeto raíz ConfigurationSectionGroup para este objeto Configuration.
Propiedad públicaSectionGroupsObtiene una colección de los grupos de sección que define esta configuración.
Propiedad públicaSectionsObtiene una colección de las secciones definidas por este objeto Configuration.
Propiedad públicaTargetFrameworkEspecifica la versión de destino de .NET Framework cuando el destino es una versión anterior a la actual.
Propiedad públicaTypeStringTransformerEspecifica un delegado de función que se usa para transformar las cadenas de tipo en archivos de configuración.
Arriba

  NombreDescripción
Método públicoEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método públicoGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetSectionDevuelve el objeto ConfigurationSection especificado.
Método públicoGetSectionGroupObtiene el objeto ConfigurationSectionGroup especificado.
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoSave()Escribe en el archivo de configuración XML actual los valores de configuración que incluye este objeto Configuration.
Método públicoSave(ConfigurationSaveMode)Escribe en el archivo de configuración XML actual los valores de configuración que incluye este objeto Configuration.
Método públicoSave(ConfigurationSaveMode, Boolean)Escribe en el archivo de configuración XML actual los valores de configuración que incluye este objeto Configuration.
Método públicoSaveAs(String)Escribe en el archivo de configuración XML especificado los valores de configuración que incluye este objeto Configuration.
Método públicoSaveAs(String, ConfigurationSaveMode)Escribe en el archivo de configuración XML especificado los valores de configuración que incluye este objeto Configuration.
Método públicoSaveAs(String, ConfigurationSaveMode, Boolean)Escribe en el archivo de configuración XML especificado los valores de configuración que incluye este objeto Configuration.
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

La configuración está almacenada en una jerarquía de archivos de configuración. Una instancia de la clase Configuration representa la vista combinada de los valores 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 sitio web. La entidad lógica puede existir en el equipo local o en un servidor remoto. Para obtener más información sobre archivos de configuración, vea Archivos de configuración y ASP.NET Configuration Files.

Cuando no existen archivos de configuración para una entidad especificada, el objeto Configuration representa las opciones de configuración predeterminadas tal se se definen en el archivo Machine.config.

Puede obtener un objeto Configuration utilizando las siguientes clases:

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

También puede generar un archivo de configuración que representa el valor de configuración en un objeto Configuration. Para ello, utilice uno de los métodos siguientes:

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

  • Llame al método SaveAs, 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".

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 ASP.NET IIS Registration Tool (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

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

Para leer los archivos de configuración, utilice el método GetSection o el método GetSectionGroup para leer la información de configuración. Tenga en cuenta que el usuario o el proceso que realiza la lectura debe tener los permisos siguientes:

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

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

Si la aplicación necesita acceso de solo lectura a su propia configuración, se recomienda utilizar la sobrecarga del método GetSection para aplicaciones web. Para la aplicación cliente, utilice el método GetSection.

Estos métodos proporcionan a la aplicación actual acceso a los valores de configuración almacenados en caché, cuyo rendimiento es mejor que el de la clase Configuration.

NotaNota

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

Para escribir información de configuración se utiliza uno de los métodos de Save. Tenga en cuenta que el usuario o el proceso que realiza la escritura debe tener los permisos siguientes:

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

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

El siguiente ejemplo de código muestra cómo utilizar la clase Configuration para tener acceso a los 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

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos 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.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft