Gestire le impostazioni dell'applicazione (.NET)
Le impostazioni dell'applicazione consentono di archiviare le informazioni dell'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 stringhe 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. Il nome non può iniziare con un numero e non può contenere spazi. Il nome viene modificato tramite la proprietà Name
.
Le impostazioni dell'applicazione possono essere archiviate come qualsiasi tipo di dati serializzato in XML o con un TypeConverter
che implementa ToString
/FromString
. I tipi più comuni sono String
, Integer
e Boolean
. È anche possibile archiviare i valori come Color, Objecto come stringa di connessione.
Le impostazioni dell'applicazione contengono anche un valore. Il valore viene impostato con la proprietà Valore e deve corrispondere al tipo di dati dell'impostazione.
Inoltre, le impostazioni dell'applicazione possono essere associate a una proprietà di un form o di un controllo in fase di progettazione.
Esistono 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 una stringa di connessione del database. 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 un formulario o una preferenza di carattere. Gli utenti possono modificare questi valori in fase di esecuzione.
È possibile modificare il tipo di un'impostazione usando la proprietà Scope.
Il sistema di 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
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 Project Designer.
Utilizzare la finestra Proprietà per un modulo o un controllo, che consente di associare un'impostazione a una proprietà.
Quando si crea un'impostazione con ambito applicazione , ad esempio una stringa di connessione del database o un riferimento alle risorse del server, Visual Studio lo salva nel file app.config con il tag <applicationSettings>
. 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 in app.config file con il tag <userSettings>
.
Importante
Quando si archiviano stringhe di connessione in app.config, è consigliabile adottare precauzioni per evitare di rivelare informazioni riservate, ad esempio password o percorsi del server, nella stringa di connessione.
Se si accettano informazioni sulla stringa di connessione da un'origine esterna, ad esempio un utente che fornisce l'ID utente e la password, assicurarsi che i valori usati per costruire la stringa di connessione non contengano parametri aggiuntivi della stringa di connessione che modificano il comportamento della connessione.
Prendere in considerazione l'uso della funzionalità 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 progetto DLL di Visual Studio Tools per Office Runtime, che può avere un file di configurazione.
Usare i file di impostazioni personalizzati
È possibile aggiungere file di impostazioni personalizzati al progetto per una gestione pratica di gruppi di impostazioni. Le impostazioni contenute in un singolo file vengono caricate e salvate come unità. L'archiviazione delle impostazioni in file separati per i gruppi usati di frequente e usati raramente può risparmiare tempo nel caricamento e nel salvataggio delle impostazioni.
Ad esempio, è possibile aggiungere un file specialsettings.settings al progetto. Mentre la classe SpecialSettings
non è esposta nello spazio dei nomi My
, View Code può leggere il file di impostazioni personalizzate che contiene Partial Class SpecialSettings
.
Il progettista delle impostazioni cerca innanzitutto il file Settings.settings creato dal sistema di progetto. Questo file Settings.settings è il file predefinito che il Progettazione progetti visualizza nella scheda Impostazioni. Il file Settings.settings si trova nella cartella Il Mio Progetto per i progetti in Visual Basic e nella cartella Proprietà per i progetti in Visual C#. Il Designer di Progetto cerca quindi altri file di impostazioni nella cartella principale del progetto. Pertanto, è consigliabile inserire il file di impostazioni personalizzate in questa posizione. Se si aggiunge un file con estensione settings altrove nel progetto, il Project Designer non riesce a 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 Settings.vb.
Settings.vb definisce la classe Settings
, che consente di gestire questi eventi nella classe delle impostazioni:
La classe Settings
in Settings.vb è una classe parziale che visualizza solo il codice di proprietà dell'utente, non l'intera classe generata. Per altre informazioni sull'accesso alle impostazioni dell'applicazione tramite l'oggetto My.Settings
, vedere Access application settings (.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 di user.config. I valori predefiniti vengono comunque salvati in app.config.
Se durante il runtime vengono modificate impostazioni con ambito utente, ad esempio durante il test dell'applicazione, e si desidera reimpostare queste impostazioni sui valori predefiniti, selezionare il pulsante Sincronizza.
Si consiglia di utilizzare l'oggetto My.Settings
e il file .settings predefinito per accedere alle impostazioni. È possibile usare la finestra di progettazione delle impostazioni di per assegnare proprietà alle impostazioni e, inoltre, le impostazioni utente vengono salvate automaticamente prima dell'arresto dell'applicazione. Tuttavia, l'applicazione Visual Basic può accedere direttamente alle impostazioni. In tal caso, è necessario accedere alla classe MySettings
e usare un file personalizzato .settings 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 classe Settings
, come illustrato nell'esempio di Visual C# seguente.
Properties.Settings.Default.FirstUserSetting = "abc";
Per rendere persistenti le impostazioni utente, è necessario chiamare in modo esplicito il metodo Save
di questa classe wrapper. Questa operazione viene in genere eseguita nel gestore eventi Closing
del modulo principale. L'esempio C# seguente illustra una chiamata al metodo Save
.
Properties.Settings.Default.Save();
Per informazioni generali sull'accesso alle impostazioni dell'applicazione tramite la classe Settings
, vedere panoramica delle impostazioni dell'applicazione (.NET Framework).
Migrazione di app da .NET Framework a .NET
.NET Framework usa il file app.config per caricare le impostazioni per l'app, ad esempio stringhe di connessione e configurazione del provider di log. .NET moderno usa il file appsettings.json per le impostazioni dell'app. Per altre informazioni sulla conversione di file app.config in appsettings.json, vedere Modernizzare dopo l'aggiornamento a .NET da .NET Framework.