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. 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 che viene serializzato come XML che abbia un oggetto 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.
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
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 stringa di connessione di database 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 sotto il <connectionStrings>
tag .
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, 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 SpecialSettings.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
.
Progettazione impostazioni cerca innanzitutto il file Settings.settings creato dal sistema di progetto. Questo file Settings.settings è il file predefinito visualizzato da Progettazione progetti nella scheda Impostazioni . Il file Settings.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 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 Settings
classe , che consente di gestire questi eventi nella classe settings:
La Settings
classe 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 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 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 .
È consigliabile usare l'oggetto My.Settings
e il file con estensione settings predefinito per accedere alle impostazioni. È possibile usare Progettazione impostazioni per assegnare le 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).
Migrazione di app da .NET Framework a .NET
.NET Framework usa il file app.config per caricare le impostazioni per l'app, ad esempio stringa di connessione e la configurazione del provider di log. Il .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.