Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/07/2013, 09:25
Avatar de Nekeniehl
Nekeniehl
 
Fecha de Ingreso: julio-2009
Ubicación: Berlin, Alemania / Granada, España
Mensajes: 132
Antigüedad: 14 años, 10 meses
Puntos: 6
Pregunta Binary deserialize

Hola a todos =D

Tengo una aplicación cliente-servidor, y ahora estoy implementando unos cambios en el socket para, en vez de texto tal cual, sean objetos, para esto uso Binary serialization.

Como la comunicación funciona bien, os pego la parte de código que uso para serializar y deserializar:

En la parte cliente serializo con esto: (this, es la clase que serializo)
Código C#:
Ver original
  1. public MemoryStream SerializeObject()
  2.         {
  3.             MemoryStream stream = new MemoryStream();
  4.  
  5.             BinaryFormatter formatter = new BinaryFormatter();
  6.  
  7.             formatter.Serialize(stream, this);
  8.  
  9.             return stream;
  10.         }

En la parte servidor deserializo con esto:

Código C#:
Ver original
  1. BinaryFormatter formatter = new BinaryFormatter();
  2. Stream str = new MemoryStream(inMessage);
  3.  
  4. BroadcastMessage m = (BroadcastMessage) formatter.Deserialize(str);

El problema:

Cuando hago la serializacion y deserializacion en el namespace en el cual uso el dll "BroadcastMessage", me lo hace perfectamente.

Pero cuando serializo, lo mando a traves del socket (recibo correctamente) y deserializo, me encuentro con que intenta buscar el namespace donde fue serializado el objecto, la cosa es que el servidor tambien usa el dll "BroadcastMessage", lanzando la excepción TargetInvocationException diciendo que no encuentra el paquete (donde fue serializado)

¿Alguna sugerencia/ayuda? Muchas gracias gurus! =D
__________________
Antes de cambiar el mundo...dá tres vueltas por tu casa

Usa Google es tu amigo ;)