Cómo: Crear la configuración de la aplicación

Mediante el código administrado, puede crear nuevas configuraciones de la aplicación y puede enlazarlas a las propiedades o controles del formulario, de modo que estas configuraciones se carguen y se guarden automáticamente en tiempo de ejecución.

En el procedimiento siguiente, puede crear manualmente una clase contenedora que deriva de ApplicationSettingsBase. Agregue a esta clase una propiedad públicamente accesible para cada configuración de la aplicación que desea exponer.

También puede realizar este procedimiento utilizando el mínimo de código en el diseñador de Visual Studio. Para obtener más información, vea Cómo: Crear una configuración de aplicación mediante el diseñador y Cómo: Crear una configuración de aplicación mediante el diseñador y Cómo: Crear una configuración de aplicación mediante el diseñador y Cómo: Crear una configuración de aplicación mediante el diseñador y Cómo: Crear una configuración de aplicación mediante el diseñador.

Para crear una nueva configuración de la aplicación mediante programación

  1. Agregue una nueva clase a su proyecto y cámbiele el nombre. Para este procedimiento, se debe llamar a esta clase MyUserSettings. Cambie la definición de clase para que la clase derive de ApplicationSettingsBase.

  2. Defina una propiedad en esta clase contenedora para cada configuración de la aplicación necesaria y aplique esa propiedad con ApplicationScopedSettingAttribute o UserScopedSettingAttribute dependiendo del ámbito de la configuración. Para obtener más información sobre la configuración del ámbito, vea Introducción a la configuración de la aplicación. Ahora el código debería tener esta apariencia:

    Imports System.Configuration
    
    Public Class MyUserSettings
        Inherits ApplicationSettingsBase
        <UserScopedSetting()> _
        <DefaultSettingValue("white")> _
        Public Property BackgroundColor() As Color
            Get
                BackgroundColor = Me("BackgroundColor")
            End Get
    
            Set(ByVal value As Color)
                Me("BackgroundColor") = value
            End Set
        End Property
    End Class
    
    using System;
    using System.Configuration;
    using System.Drawing;
    
    public class MyUserSettings : ApplicationSettingsBase
    {
        [UserScopedSetting()]
        [DefaultSettingValue("white")]
        public Color BackgroundColor
        {
            get
            {
                return ((Color)this["BackgroundColor"]);
            }
            set
            {
                this["BackgroundColor"] = (Color)value;
            }
        }
    }
    
  3. Cree una instancia de esta clase contenedora en la aplicación. Normalmente será un miembro privado del formulario principal. Ahora que ha definido la clase, necesita enlazarlo a una propiedad; en este caso, la propiedad BackColor del formulario. Puede lograr esto en el controlador de eventos de su formulario Load .

    Dim Mus As MyUserSettings
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Mus = New MyUserSettings()
        Mus.BackgroundColor = Color.AliceBlue
        Me.DataBindings.Add(New Binding("BackColor", Mus, "BackgroundColor"))
    End Sub
    
    MyUserSettings mus;
    
    private void Form1_Load(object sender, EventArgs e)
    {
        mus = new MyUserSettings();
        mus.BackgroundColor = Color.AliceBlue;
        this.DataBindings.Add(new Binding("BackColor", mus, "BackgroundColor"));
    }
    
  4. Si proporciona una manera de cambiar la configuración en tiempo de ejecución, necesitará guardar en el disco la configuración actual del usuario cuando cierre el formulario, o de otro modo se perderán estos cambios.

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Mus.Save()
    End Sub
    
        //Make sure to hook up this event handler in the constructor!
        //this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
            void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                mus.Save();
            }
    

    Ahora ha creado correctamente una nueva configuración de la aplicación y la ha enlazado a la propiedad especificada.

Seguridad

El proveedor de configuración predeterminada, LocalFileSettingsProvider, guarda la información en los archivos de configuración como texto sin formato. Esto limita la seguridad de acceso a archivos proporcionada por el sistema operativo para el usuario actual. Por esto, se debe tener cuidado con la información almacenada en los archivos de configuración. Por ejemplo, un uso común de la configuración de la aplicación es el almacenamiento de cadenas de conexión que señalan al almacén de datos de la aplicación. Sin embargo, por motivos de seguridad, estas cadenas no deben incluir contraseñas. Para obtener más información sobre cadenas de conexión, vea SpecialSetting.

Vea también

Tareas

Cómo: Validar la configuración de la aplicación

Referencia

SpecialSettingAttribute

LocalFileSettingsProvider

Conceptos

Introducción a la configuración de la aplicación