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
public MemoryStream SerializeObject() { MemoryStream stream = new MemoryStream(); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, this); return stream; }
En la parte servidor deserializo con esto:
Código C#:
Ver original
BinaryFormatter formatter = new BinaryFormatter(); Stream str = new MemoryStream(inMessage); 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