Condividi tramite


Procedura: creare le impostazioni dell'applicazione

L'utilizzo di codice gestito consente di creare nuove impostazioni dell'applicazione e di associarle a proprietà sul form o sui controlli del form affinché vengano caricate e salvate automaticamente in fase di esecuzione.

Nella procedura seguente viene creata manualmente una classe wrapper derivante da ApplicationSettingsBase. Alla classe viene aggiunta una proprietà accessibile pubblicamente per ogni impostazione dell'applicazione che si desidera esporre.

È anche possibile eseguire questa procedura utilizzando una quantità minima di codice nella finestra di progettazione di Visual Studio. Per ulteriori informazioni, vedere Procedura: creare le impostazioni delle applicazioni utilizzando la finestra di progettazione e Procedura: creare le impostazioni delle applicazioni utilizzando la finestra di progettazione e Procedura: creare le impostazioni delle applicazioni utilizzando la finestra di progettazione e Procedura: creare le impostazioni delle applicazioni utilizzando la finestra di progettazione e Procedura: creare le impostazioni delle applicazioni utilizzando la finestra di progettazione.

Per creare nuove impostazioni dell'applicazione a livello di codice

  1. Aggiungere una nuova classe al progetto e rinominarla. Per questa procedura si applicherà alla classe la denominazione MyUserSettings. Modificare la definizione della classe in modo che la classe derivi da ApplicationSettingsBase.

  2. Definire una proprietà della classe wrapper per ogni impostazione dell'applicazione desiderata e applicare alla proprietà la classe ApplicationScopedSettingAttribute o UserScopedSettingAttribute in funzione dell'ambito dell'impostazione. Per ulteriori informazioni sull'ambito delle impostazioni, vedere Cenni preliminari sulle impostazioni delle applicazioni. A questo punto, il codice dovrebbe risultare simile al seguente:

    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. Creare un'istanza della classe wrapper nell'applicazione. Generalmente si tratta di un membro privato del form principale. Terminata la definizione della classe, è necessario associarla a una proprietà, ovvero, nel caso specifico, la proprietà BackColor del form. Eseguire tale operazione nel gestore eventi Load del form.

    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. Se si fornisce la possibilità di modificare le impostazioni in fase di esecuzione, è necessario salvare le impostazioni correnti dell'utente su disco alla chiusura del form altrimenti le modifiche andranno perse.

    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();
            }
    

    A questo punto sarà stata creata una nuova impostazione dell'applicazione, associata alla proprietà specificata.

Sicurezza

Il provider di impostazioni predefinito, LocalFileSettingsProvider, rende persistenti le informazioni inviandole nei file di configurazione sotto forma di testo normale. Poiché in tal modo viene ridotta la sicurezza dell'accesso ai file garantita dal sistema operativo per l'utente corrente, è necessario utilizzare con cautela le informazioni archiviate nei file di configurazione. Un impiego comune delle impostazioni dell'applicazione, ad esempio, consiste nell'archiviare stringhe di connessione che puntano all'archivio dati dell'applicazione. Per ragioni di sicurezza, tuttavia, è importante che tali stringhe non includano password. Per ulteriori informazioni sulle stringhe di connessione, vedere SpecialSetting.

Vedere anche

Attività

Procedura: convalidare le impostazioni applicazione

Riferimenti

SpecialSettingAttribute

LocalFileSettingsProvider

Concetti

Cenni preliminari sulle impostazioni delle applicazioni