Hola gente, les comento que hasta hace unos dias, utilizaba variables blogables en mi sistema de la siguiente manera:
Ingresaba a las propiedades del proyecto, entraba a CONFIGURACIONES, agregaba supongamos un Boolean llamado: "Ejemplo" marcado con el valor TRUE.
Supongamos que la aplicacion tiene un boton que cambia el valor actual, al opuesto, o sea, si es TRUE, pasa a FALSE, y si es FALSE, pase a TRUE. Y en un LABEL, se mostraba el valor actual de la variable "EJEMPLO", el cual (el label) se cargaba con el valor al iniciar el software, y al modificarse precionando el boton, tambien se modificaba en el label.
El codigo para modificar, era:
My.Settings.Ejemplo = XXXX
Al terminar la modificacion, hacía un:
My.settings.save()
Supongamos que cambiaba el valor 1 vez, y quedaba en false.
SUpongamos luego, que cierro la aplicacion, y la desisntalo.
En la carpeta de instalacion, no quedaba nada, es mas, al instalar la aplicacion con un isntalador, al desinstalar, no quedaba ni la carpeta de instalacion.
Supongamos ahora, que vuelvo a instalar la aplicacion.
Al iniciarce, el valor de "Ejemplo", era FALSE. (y tenía que ser TRUE).
Nunca entendí porque me daba ese problema... Como si el valor de la variable Ejemplo, quedase guardado en algun lugar del PC, y que al desinstalar la aplicacion, no se borrara el valor, y que tampoco se sobreescriba al reinstalar la aplicacion.
(me gustaria que me den alguna ayuda de PORQUE PASA ESO?)
Pero continuo con la pregunta:
Viendo este problema, me dijeron que utilice el System.configuration.configurationmanager para crear variables globales y eso. OK
En mi app.confiig, tengo los siguientes datos:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<sources>
<!-- En esta sección se define la configuración del registro para My.Application.Log -->
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
<!-- Quite los comentarios de la sección posterior para escribir en el registro de eventos de la aplicación -->
<!--<add name="EventLog"/>-->
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information" />
</switches>
<sharedListeners>
<add name="FileLog"
type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
initializeData="FileLogWriter"/>
<!-- Quite los comentarios de la sección posterior y reemplace APPLICATION_NAME con el nombre de su aplicación para escribir en el registro de eventos de la aplicación -->
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
</sharedListeners>
</system.diagnostics>
</configuration>
Me gustaria que me digan si algunos de esos datos estan de mas, porque yo nunca los escribi, pero bueno.. continuo:
Agregé las siguientes lineas, como me lo dijeron que haga:
<appSettings>
<add key="Nuevo" value="True" />
<add key="Actualizacion" value="" />
<add key="Database" value="" />
</appSettings>
Y el archivo app.config, me quedó así al final:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<sources>
<!-- En esta sección se define la configuración del registro para My.Application.Log -->
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
<!-- Quite los comentarios de la sección posterior para escribir en el registro de eventos de la aplicación -->
<!--<add name="EventLog"/>-->
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information" />
</switches>
<sharedListeners>
<add name="FileLog"
type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
initializeData="FileLogWriter"/>
<!-- Quite los comentarios de la sección posterior y reemplace APPLICATION_NAME con el nombre de su aplicación para escribir en el registro de eventos de la aplicación -->
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
</sharedListeners>
</system.diagnostics>
<appSettings>
<add key="Nuevo" value="True" />
<add key="Actualizacion" value="" />
<add key="Database" value="" />
</appSettings>
</configuration>
Ahora bien, supongamos que tengo que leer los datos de la variable: "Nuevo"
tengo que hacer ésto:
MsgBox(System.ConfigurationConfigurationManager.AppSettings.Get("Nuevo"))
o
MsgBox(System.ConfigurationConfigurationManager.AppSettings("Nuevo"))
??????
Y para modificar el valor? que tengo que hacer?
Muchas gracias por sus ayudas!!