2009-12-16 17 views
18

Che cosa dovrebbe dettare quando dovrei usare configurationManager.AppSettings o le impostazioni fortemente tipizzate generate da Visual Studio? I tipi fortemente tipizzati sembrano molto più appropriati nella maggior parte dei casi, ma suppongo che sarebbe possibile aggiungere impostazioni dinamicamente a un'applicazione distribuita usando l'approccio di ConfigurationManager, ma ci sono delle linee guida in base alle quali ciascuna delle circostanze è progettata per essere utilizzata?ConfigurationManager.AppSettings ["SettingName"] vs Properties.Settings.Default.SettingName quando dovrei usare ciascuno?

+1

Eventuali duplicati di [Pro e contro di appsettings vs ApplicationSettings (NET app.config)] (http://stackoverflow.com/questions/460935/pros-and-cons-of-appsettings-vs-applicationsettings-net -app-config) –

risposta

10

Da quello che I read, sembra AppSettings è il modo più vecchio di fare le cose. MSDN docs indica che le impostazioni utente possono essere scritte in fase di esecuzione se si utilizzano le impostazioni.

Preferisco sempre le impostazioni fortemente tipizzate, che possono essere implementate con i gestori di ConfigSection.

Pros and cons of appSettings vs applicationSettings (.NET app.config)

+0

grazie, quella domanda era quello che stavo cercando quando stavo cercando. –

6

La più grande differenza è che le proprietà generate sono di sola lettura, quindi il motivo principale per utilizzare AppSettings è se si desidera scriverle (che è raro).

E sì, è possibile utilizzare AppSettings per le impostazioni generate dinamicamente, ma anche questo è raro.

+1

entrambi possono essere modificati manualmente, vuoi dire che le proprietà generate non possono essere scritte in modo programmato quando il programma è in esecuzione, ma quelle di AppSettings potrebbero (se mai lo volessi)? –

+0

Bebop: Sì (2x) –

2

Vorrei suggerire che le impostazioni generiche sono più vecchie e dovrebbero essere utilizzate solo per la retrocompatibilità.

Le impostazioni fortemente tipizzate sono più robuste così come sono ... fortemente digitate.

2

Usa Properties.Settings.Default.SettingName. Ma ConfigurationManager.AppSettings ["SettingName"] dovrebbe essere usato solo quando prima è impossibile da usare.

+0

spiegare in quali circostanze il primo potrebbe essere impossibile da usare? –

+0

Se Properties.Settings.Default viene utilizzato in un altro assieme. Ad esempio se le impostazioni appartengono all'assembly MyMainApplication e utilizza MyBusinessLogicLibrary, - in questo caso MyBusinessLogicLibrary può accedere solo ai metodi 'ApplicationSettingsBase'. –

Problemi correlati