Retroceder   Foros del Web > Programación para sitios web > .NET > win forms

Respuesta
 
Herramientas Desplegado
Antiguo 29-nov-2005, 18:13   #1 (permalink)
mariano_donati tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.139
Problema para leer un objeto serializado!

Hola, estoy haciendo una prueba sencilla para ver si puedo mandar un objeto serializado a través de un socket. Esto es lo que hago:

PrivateFunction GetSerializedBytes(ByVal E As EventSender) AsByte()

Dim Formatter AsNew BinaryFormatter()

Dim S AsNew MemoryStream()

Formatter.Serialize(S, E)

Dim BinaryReader AsNew BinaryReader(S)

Return BinaryReader.ReadBytes(S.Length)

EndFunction


La cuestión es que la longitud de la matriz de bytes que me devuelve esta función siempre es 0, es decir, como que no leyera ningún byte. En donde puede estar el error?
__________________
En el este y el oeste, en el Norte y en el sur, brilla la blanca y celeste, la academia Racing Club
mariano_donati está desconectado   Responder Citando
Antiguo 29-nov-2005, 19:51   #2 (permalink)
mariano_donati tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.139
Modifique un poco el código, ahora me devuelve una matriz de bytes con longitud mayor que cero, es decir, que me lee correctamente los bytes, pero en el servidor, cuando se ejecuta este método, y más precisamente la linea marcada en rojo, me salta este error:

Información adicional: La secuencia Binary no contiene ningún BinaryHeader válido, 0 causas posibles, secuencia no válida o cambio de versión de objeto entre la serialización y la deserialización.


PrivateFunction DeserializeBytes(ByVal B() AsByte) As Message

Dim M AsNew MemoryStream(B)

Dim Formatter AsNew BinaryFormatter()

ReturnCType(Formatter.Deserialize(M), Message)

EndFunction


El parametro B() es la matriz de bytes que fue enviada por el cliente al servidor, es decir, el objeto serializado.

Espero que alguien pueda darme una mano con esto.

Saludos a todos!.
__________________
En el este y el oeste, en el Norte y en el sur, brilla la blanca y celeste, la academia Racing Club
mariano_donati está desconectado   Responder Citando
Antiguo 01-dic-2005, 13:47   #3 (permalink)
mariano_donati tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.139
No se si a alguien le interese esto, pero finalmente pude resolver mi inconveniente. El problema era que tenía dos clases llamadas de la misma forma en cada aplicación, lo cual me generaba error. Entonces, lo que hice fue en lugar de tener la clase en cada aplicación, generar una dll y referenciarla desde las aplicaciones, y así si funciono. Vuelvo a repetir, no se si a alguien le interese, pero esta son las funciones que utilizo para hacerlo:

PrivateFunction GetSerializedBytes(ByVal E As Message) AsByte()

'Esta función devuelve la matriz de bytes del objecto serializado para poder ser enviado mediante el socket

Dim Formatter AsNew BinaryFormatter()

Dim S AsNew MemoryStream()

Formatter.Serialize(S, E)

Return S.GetBuffer()

EndFunction


PrivateFunction DeserializeBytes(ByVal B() AsByte) As EventSender

'Esta funcion es la que me permite deserializar el objeto

Dim Formatter AsNew BinaryFormatter()

Dim M AsNew MemoryStream(B)

ReturnCType(Formatter.Deserialize(M), EventSender)

EndFunction

Espero que le sea de utilidad a alguien ya que en este foro realmente me han ayudado un monton.
Saludos a todos!.
__________________
En el este y el oeste, en el Norte y en el sur, brilla la blanca y celeste, la academia Racing Club
mariano_donati está desconectado   Responder Citando
Antiguo 01-dic-2005, 18:23   #4 (permalink)
xknown está en el buen camino
 
Avatar de xknown
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.249
Me parece bien que tu mismo te respondas y contribuyas al foro, así aprendes más.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
xknown está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 02:30.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93