write leer archivo applicationsettings application app c# .net winforms app-config application-settings

c# - leer - App.config: Alcance del usuario frente a la aplicación



my.settings c# (2)

La configuración del alcance de la aplicación es de solo lectura y solo se puede cambiar en el momento del diseño o al modificar el archivo .exe.config entre las sesiones de la aplicación. Sin embargo, la configuración del alcance del usuario se puede escribir en tiempo de ejecución, del mismo modo que cambiaría cualquier valor de propiedad. El nuevo valor persiste durante la sesión de la aplicación. Puede persistir en los cambios de la configuración del usuario entre las sesiones de la aplicación llamando al método Settings.Save.

Fuente en msdn: Usar la configuración en C #

La configuración del usuario generalmente es útil para las preferencias persistentes del usuario (por ejemplo, preferencias de notificación de la aplicación, etc.). La configuración de la aplicación generalmente para elementos tales como claves de API, etc.

Como se señala en @kmote, cuando la configuración del usuario se modifica y persiste en tiempo de ejecución (a través de settings.Save() ), se escribirán en una carpeta dentro del almacenamiento de User Profile (normalmente C: / Users / Username / AppData / Local / AppName en Windows 7 y superior). Para determinar la ubicación del archivo mediante programación, consulte esta publicación .

He agregado el archivo App.config en mi proyecto. He creado dos configuraciones desde Proyecto> Propiedades> Panel de configuración -

Me he dado cuenta de que cuando agrego una configuración, puedo definir el alcance como User o Application . -

  1. Usuario
  2. Solicitud

Si defino la configuración como User , va a la sección de configuración de User ,
si defino la configuración como Application , va a la sección applicationSettings

App.config

<configuration> <userSettings> <DemoApp.Properties.Settings> <setting name="MySetting1" serializeAs="String"> <value>Value1</value> </setting> </DemoApp.Properties.Settings> </userSettings> <applicationSettings> <DemoApp.Properties.Settings> <setting name="MySetting2" serializeAs="String"> <value>Value2</value> </setting> </DemoApp.Properties.Settings> </applicationSettings> </configuration>

Pero, se puede acceder a estas configuraciones de la misma manera desde .cs -

Código

string mySetting1 = DemoApp.Properties.Settings.Default.MySetting1; string mySetting2 = DemoApp.Properties.Settings.Default.MySetting2;

¿Cuál es la diferencia entre el alcance del User y de la Application y bajo qué circunstancias uno debe elegir entre estos dos?


Básicamente, la configuración de la aplicación no se puede cambiar durante la ejecución de un programa y la configuración del usuario puede. Estas configuraciones de usuario se deben guardar para que el usuario tenga una experiencia familiar cuando ejecute la aplicación a continuación.

Editar: por ejemplo, puede escribir su aplicación con diferentes módulos y debe asegurarse de que su módulo principal esté utilizando la versión correcta de su módulo de seguridad. Para esto, configuraría una configuración de ámbito de aplicación, por ejemplo:

SecurityModuleVersion string Application v1.21

Algún tiempo después, cuando refactorice el módulo de seguridad, puede cambiar el valor a v1.22 cuando implemente para asegurarse de que se implemente la seguridad correcta.

Por otro lado, si su aplicación tiene diferentes "aspectos" con cambios de color, cambios de fuente, etc., entonces puede configurar un usuario que configure algo como lo siguiente:

ApplicationSkin string User DefaultSkin

Luego, cuando Michelle cambia a la piel que prefiere, la aplicación recuerda su configuración. Las propiedades ahora pueden verse así:

ApplicationSkin string User HelloKittySkin