Le impostazioni (sia da un set .settings che da Configuration.AppSettings
), sono memorizzate nel file .config [insieme a molte altre cose].
La differenza è che la roba .settings [che è stato aggiunto in .NET 2.0/VS2005] strati una classe fortemente tipizzato in cima a una serie di impostazioni che appartengono insieme mentre Configuration.AppSettings
consente solo di recuperare le stringhe, ti costringe a fare qualsiasi conversione e non ha la nozione di default. (la classe Configuration è stata effettivamente deviata in un assembly laterale per riflettere questo: è necessario aggiungere un riferimento a System.Configuration in modo esplicito se lo si desidera).
Aggiungendo un .settings al progetto, verrà aggiunto un app.config per ospitare le impostazioni, se non ne hai già uno. La classe che legge le impostazioni viene generata automaticamente ogni volta che si modifica l'elenco delle impostazioni per il componente/l'applicazione.
Altre funzioni di .Settings è la possibilità di designare alcune impostazioni come specifiche dell'utente (e anche per salvare le impostazioni specifiche dell'utente con una singola chiamata).
La migliore ragione di tutti da utilizzare. Impostazioni è generalmente quella che si ottiene la possibilità di identificare chiaramente chi sta usando quale impostazione in un codice base seguendo gli usi delle proprietà (e ogni insieme è un blocco separato nel file XML) . Configuration.appSettings
è più globale nella sua natura - è solo un sacco di proprietà e non sai quale DLL, sottosistema o classe dipende da una particolare voce di impostazione. Vedi this blog post from Steven Smith per molto altro.
Infine, se non hai ancora letto abbastanza sulla gestione delle impostazioni, non hai intenzione di battere this Rick Strahl post on the subject per completezza o pura quantità di idee e angoli.
ASIDE: C'è anche il materiale ASP.NET vNext Configuration, outlined in this article che è abbastanza flessibile e offre un'angolazione diversa sulla gestione delle impostazioni di configurazione.
fonte
2009-05-26 09:05:40
Grazie per la risposta. Solo confuso su un punto: ci sono 2 tipi di impostazioni.Uno è l'impostazione delle app e l'altro è l'impostazione dell'utente. Se entrambi i tipi di impostazioni sono memorizzati nel file di configurazione, in che modo le impostazioni utente saranno diverse per i diversi utenti? – Hemant
Ci scusiamo per aver omesso di menzionarlo. Le impostazioni utente sono uno dei motivi per cui esistono i valori predefiniti (se l'utente non ha ancora utilizzato l'app, i valori predefiniti si applicano fino a quando non viene salvata una modifica). Le impostazioni dell'utente sono memorizzate in un file di configurazione separato nella directory del profilo dell'utente (utenti \ XXX). Anche le impostazioni dell'utente possono essere aggiornate (quelle di sistema non possono usare l'API predefinita e non dovrebbero - vivono in Program Files e non è possibile controllare in modo sicuro l'accesso di più utenti lì.) –
dove si inserisce il gestore di configurazione in tutto questo? Sto provando e fallendo nel tentativo di dirmi dove sono le mie settings.settings e poi salvare una configurazione vuota lì –