2009-12-16 11 views
18

¿Qué debería dictar cuándo debo usar ConfigurationManager.AppSettings o la configuración fuertemente tipada que genera visual studio? Los fuertemente tipados parecen mucho más apropiados en la mayoría de los casos, pero supongo que sería posible agregar configuraciones dinámicamente a una aplicación implementada usando el enfoque de ConfigurationManager, pero ¿hay alguna guía bajo qué circunstancias cada una está diseñada para ser utilizada?ConfigurationManager.AppSettings ["SettingName"] vs Properties.Settings.Default.SettingName ¿cuándo debería usar cada uno?

+1

Posible duplicado de [Ventajas y desventajas de las configuraciones de la aplicación frente a la configuración de la aplicación (.NET app.config)] (http://stackoverflow.com/questions/460935/pros-and-cons-of-appsettings-vs-applicationsettings-net -app-config) –

Respuesta

10

De lo que I read, parece que AppSettings es la forma más antigua de hacer las cosas. MSDN docs indica que la configuración del usuario se puede escribir en tiempo de ejecución si está utilizando la configuración.

Siempre prefiero configuraciones fuertemente tipadas, que se pueden implementar con controladores ConfigSection.

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

+0

gracias, esa pregunta era lo que estaba buscando cuando estaba buscando. –

6

La mayor diferencia es que las propiedades generadas son de solo lectura, por lo que la razón principal para usar AppSettings es si desea escribirlas (lo cual es raro).

Y sí, podría usar AppSettings para configuraciones generadas dinámicamente, pero eso también es raro.

+1

ambos pueden modificarse manualmente, ¿quiere decir que las propiedades generadas no pueden escribirse programáticamente cuando el programa se está ejecutando, pero las de AppSettings podrían (si alguna vez lo deseaba)? –

+0

Bebop: Sí (2x) –

2

Aconsejo que las configuraciones de escritura libre son más antiguas y que solo deberían usarse para compatibilidad con versiones anteriores.

La configuración fuertemente tipada es más robusta, ya que están ... fuertemente tipadas.

2

Uso Properties.Settings.Default.SettingName. Pero ConfigurationManager.AppSettings ["SettingName"] debería usarse solo cuando el primero es imposible de usar.

+0

por favor explique en qué circunstancias el primero podría ser imposible de usar? –

+0

If Properties.Settings.Default se usa en otro ensamblado. Por ejemplo, si los ajustes pertenecen al ensamblaje MyMainApplication y usa MyBusinessLogicLibrary, en este caso MyBusinessLogicLibrary solo puede acceder a los métodos 'ApplicationSettingsBase'. –

Cuestiones relacionadas