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

Hola a todos,

Acabo de retomar un viejo proyecto, dentro del mismo me gustaría crear una clase para manejar la configuración de la aplicación (ya sé que existe el "My.Settings") de forma que se pueda guardar y recuperar.

Esto es bastante sencillo gracias a la simplicidad de la "serialización/deserialización". El problema que me encuentro es que al deserializar el objeto en un método público de la misma clase, no lo puedo asignar directamente a la misma instancia del objeto. Sí que puedo crear otra instancia y asignar el objeto deserializado a la otra instancia, pero no a la misma.

El código que empleo es el siguiente:

Public Function Cargar() As Boolean
If File.Exists(_archivo) Then
Try
fs = File.OpenRead(_archivo)
seriador = New BinaryFormatter
Me = CType(seriador.Deserialize(fs), cConfiguracion)
Cargar = True
Catch ex As IOException
Throw New Exception("No se puede cargar la configuración" & vbNewLine & ex.Message)
Finally
fs.Close()
End Try
Else
Throw New Exception("No existe el archivo de configuración")
Return False
End If
End Function

Me dice que no se puede asignar nada a "Me", he probado una alternativa que no genera error, pero tampoco obtengo resultados, esta es crear un método "private" de la siguiente forma:

Private Sub Asignar(ByRef Config As cConfiguracion, ByVal Cargado As cConfiguracion)
Config = Cargado
End Sub

Llamado mediante la siguiente línea: "Asignar(Me, ConfigCargada)". Donde ConfigCargada es la instancia que se crea al deserializar.

¿conoceis alguna forma de hacer esto?

Gracias.

Un saludo