Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/10/2010, 12:06
raululm
 
Fecha de Ingreso: junio-2009
Mensajes: 10
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Asignar una instancia de una clase a otra desde dentro de la ultima clase

Me comentan que no está muy claro, así que lo expongo de otra forma. Tengo una clase llamada configuración, con unas propiedades públicas y 2 métodos "Guardar" y "Cargar" con el siguiente esquema:

Código vb:
Ver original
  1. Public class Configuracion
  2.  
  3. Public Usuario as String
  4. Public RutaBD as String
  5.  
  6. Public Function Guardar() as Boolean
  7. 'Aquí serializo la clase, funciona Ok.
  8. End Function
  9.  
  10. Public Function Cargar() as Boolean
  11. 'Esta es la rutina que me genera el problema, la intención es cargar la info del archivo
  12. 'en la misma instancia de la clase, con el siguiente código
  13. Me = CType(seriador.Deserialize(fs), cConfiguracion)
  14. 'Genera error porque no se puede asignar nada a "Me"
  15. End Function
  16.  
  17. End class

Pretendo que al iniciar la aplicación se genere una instancia de la clase "cConfiguración" llamada "Configuracion", cargar en ella los parámetros de configuración mediante el método "Cargar()" y cuando finalice la aplicación llamar al método "Guardar()" para guardar los posibles cambios en la configuración.

Código vb:
Ver original
  1. Public Configuracion as cConfiguracion
  2.  
  3. Public Sub IniciarAplicacion()
  4. ' Creo una instancia de la clase
  5. Configuracion=new cConfiguracion
  6. ' Cargo la información en la instancia
  7. Configuracion.Cargar()
  8. End Sub
  9.  
  10. Public Sub MostrarUsuario()
  11. MsgBox ("Usuario: " & Configuracion.Usuario)
  12. End Sub
  13.  
  14. Public Sub CambiarUsuario(ByVal Usuario as String)
  15. Configuracion.Usuario=Usuario
  16. End Sub
  17.  
  18. Public Sub FinalizarAplicacion()
  19. Configuracion.Guardar()
  20. End Sub

Como os comento todo funciona Ok, excepto que no soy capaz de cargar la información en la misma instancia de la clase. Funciona si lo cargo en otra instancia, pero no en la misma.

Código vb:
Ver original
  1. ' Sí que funciona:
  2. Public Function Cargar() as Boolean
  3. dim Configuracion2 as new cConfiguracion
  4. Configuracion2 = CType(seriador.Deserialize(fs), cConfiguracion)
  5. ' El inconveniente es que así no me sirve, tendría que construir
  6. 'el método de cargar la configuración externo a la definición de la clase.
  7. End Function
  8.  
  9. 'No funciona (y es lo que quiero conseguir)
  10. Me = CType(seriador.Deserialize(fs), cConfiguracion)

¿Alguien me puede ayudar?

Un saludo a todos