Gestire le impostazioni dell'applicazione (.NET)

Le impostazioni dell'applicazione consentono di archiviare le informazioni sull'applicazione in modo dinamico. Con le impostazioni dell'applicazione, è possibile usare un computer client per archiviare informazioni che non devono essere incluse nel codice dell'applicazione in fase di esecuzione. Le impostazioni dell'applicazione possono includere stringa di connessione, preferenze utente e altro ancora.

Nota

Le impostazioni dell'applicazione sostituiscono le proprietà dinamiche usate nelle versioni precedenti di Visual Studio.

Ogni impostazione dell'applicazione deve avere un nome univoco. Il nome può essere qualsiasi combinazione di lettere, numeri o un carattere di sottolineatura. Tuttavia, il nome non può iniziare con un numero e non può avere spazi. Il nome viene modificato tramite la proprietà Name.

Le impostazioni dell'applicazione possono essere archiviate come qualsiasi tipo di dati che viene serializzato come XML che abbia un oggetto TypeConverter che implementa ToString/FromString. I tipi più comuni sono String, Integere Boolean. È anche possibile archiviare i valori come Color, Objecto come stringa di connessione.

Anche le impostazioni dell'applicazione mantengono un valore. Il valore viene impostato con la proprietà Valore e deve corrispondere al tipo di dati dell'impostazione.

Inoltre, in fase di progettazione, è possibile associare le impostazioni dell'applicazione alla proprietà di un form o di un controllo.

Sono disponibili due tipi di impostazioni dell'applicazione, in base all'ambito:

  • Le impostazioni con ambito applicazione possono essere usate per informazioni quali un URL per un servizio Web o un database stringa di connessione. Questi valori sono associati all'applicazione. Pertanto, gli utenti non possono modificarli in fase di esecuzione.

  • Le impostazioni con ambito utente possono essere utilizzate per informazioni quali la persistenza dell'ultima posizione di una maschera o una preferenza per il tipo di carattere. Gli utenti possono modificare questi valori in fase di esecuzione.

È possibile modificare il tipo di un'impostazione usando la proprietà Ambito .

Il sistema del progetto archivia le impostazioni dell'applicazione in due file XML:

  • Un file app.config , creato in fase di progettazione quando si crea la prima impostazione dell'applicazione

  • Un file user.config , creato in fase di esecuzione quando l'utente che esegue l'applicazione modifica il valore di qualsiasi impostazione utente.

Si noti che le modifiche apportate alle impostazioni utente non vengono scritte su disco a meno che l'applicazione non chiami in modo specifico un metodo a tale scopo.

Creare impostazioni dell'applicazione in fase di progettazione

In fase di progettazione, è possibile creare le impostazioni dell'applicazione in due modi:

  • Utilizzare la pagina Impostazioni di Progettazione progetti.

  • Utilizzare la finestra Proprietà per una maschera o un controllo, che consente di associare un'impostazione a una proprietà.

Quando si crea un'impostazione con ambito applicazione(ad esempio, un database stringa di connessione o un riferimento alle risorse del server), Visual Studio lo salva nel file app.config con il <applicationSettings> tag . (Le stringhe di connessione vengono salvate nel tag <connectionStrings> .)

Quando si crea un'impostazione con ambito utente (ad esempio, il tipo di carattere predefinito, la home page o le dimensioni della finestra), Visual Studio lo salva nel file app.config con il <userSettings> tag .

Importante

Quando si archiviano stringhe di connessione in app.config, è opportuno adottare delle precauzioni per evitare di rivelare informazioni riservate, quali password o percorsi del server, nella stringa di connessione.

Se si accettano stringa di connessione informazioni da un'origine esterna, ad esempio un utente che fornisce l'ID utente e la password, è necessario prestare attenzione per assicurarsi che i valori usati per costruire il stringa di connessione non contengano parametri aggiuntivi stringa di connessione che modificano il comportamento della connessione.

Valutare l'uso della funzionalità di configurazione protetta per crittografare le informazioni riservate nel file di configurazione. Per altre informazioni, vedere Proteggere le informazioni di connessione.

Nota

Poiché non esiste un modello di file di configurazione per le librerie di classi, le impostazioni dell'applicazione non si applicano ai progetti libreria di classi. L'eccezione è un Strumenti di Visual Studio per il progetto DLL di Runtime di Office, che può avere un file di configurazione.

Usare file di impostazioni personalizzati

È possibile aggiungere file di impostazioni personalizzati al progetto per agevolare la gestione dei gruppi di impostazioni. Le impostazioni contenute in un unico file vengono caricate e salvate come unità. L'archiviazione delle impostazioni in file diversi per i gruppi di utilizzo frequente e di utilizzo non frequente può determinare un risparmio di tempo nel caricamento e nel salvataggio delle impostazioni.

Ad esempio, è possibile aggiungere un file Special Impostazioni.settings al progetto. Anche se la SpecialSettings classe non è esposta nello spazio dei My nomi, View Code può leggere il file di impostazioni personalizzato che contiene Partial Class SpecialSettings.

Il Impostazioni Designer cerca innanzitutto il file Impostazioni.settings creato dal sistema di progetto. Questo file Impostazioni.settings è il file predefinito visualizzato da Progettazione progetti nella scheda Impostazioni. Il file Impostazioni.settings si trova nella cartella Progetto personale per progetti Visual Basic e nella cartella Proprietà per i progetti Visual C#. Successivamente, Creazione progetti cerca gli altri file di impostazioni nella cartella radice del progetto. Pertanto, è necessario inserirvi il file di impostazioni personalizzato. Se si aggiunge un file con estensione settings altrove nel progetto, Progettazione progetti non sarà in grado di individuarlo.

Accedere o modificare le impostazioni dell'applicazione in fase di esecuzione in Visual Basic

Nei progetti Visual Basic è possibile accedere alle impostazioni dell'applicazione in fase di esecuzione usando l'oggetto My.Settings . Nella pagina Impostazioni selezionare il pulsante Visualizza codice per visualizzare il file Impostazioni.vb. Nel file Settings.vb viene definita la classe Settings che consente di gestire i seguenti eventi nella classe delle impostazioni: SettingChanging, PropertyChanged, SettingsLoaded, e SettingsSaving. La classe Settings nel file Settings.vb è una classe parziale in cui viene visualizzato solo il codice di proprietà dell'utente, non l'intera classe generata. Per altre informazioni sull'accesso alle impostazioni dell'applicazione usando l'oggetto My.Settings, vedere Accedere alle impostazioni dell'applicazione (.NET Framework).

I valori di qualsiasi impostazione con ambito utente modificata dall'utente in fase di esecuzione (ad esempio, la posizione di un modulo) vengono archiviati in un file user.config . I valori predefiniti vengono salvati nel file app.config.

Se durante il runtime vengono modificate impostazioni con ambito utente, ad esempio durante il test dell'applicazione e si vuole reimpostare queste impostazioni sui valori predefiniti, selezionare il pulsante Sincronizza .

È consigliabile usare l'oggetto My.Settings e il file con estensione settings predefinito per accedere alle impostazioni. È consigliabile usare la finestra di progettazione Impostazioni per assegnare proprietà alle impostazioni e, inoltre, le impostazioni utente vengono salvate automaticamente prima dell'arresto dell'applicazione. L'applicazione Visual Basic può comunque accedere direttamente alle impostazioni. In quel caso è necessario accedere alla classe MySettings e usare un file .settings personalizzato nella radice del progetto. È necessario salvare le impostazioni utente prima di terminare l'applicazione, come si farebbe per un'applicazione C#, come descritto nella sezione seguente.

Accedere o modificare le impostazioni dell'applicazione in fase di esecuzione in C#

Nei linguaggi diversi da Visual Basic, ad esempio C#, è necessario accedere direttamente alla Settings classe, come illustrato nell'esempio di Visual C# seguente.

Properties.Settings.Default.FirstUserSetting = "abc";

È necessario chiamare in modo esplicito il metodo Save di questa classe wrapper per rendere persistenti le impostazioni utente. Questa operazione viene in genere eseguita nel Closing gestore eventi del form principale. Nell'esempio seguente di C# viene illustrata una chiamata al metodo Save.

Properties.Settings.Default.Save();

Per informazioni generali sull'accesso alle impostazioni dell'applicazione attraverso la classe Settings, vedere Cenni preliminari sulle impostazioni delle applicazioni (.NET Framework). Per impostazioni sullo scorrimento delle impostazioni, vedere questo post del forum.