Título: Serializacion datatable Publicado por: diego_lp en 26 Febrero 2010, 19:18 pm Hola a todos, estoy en un proyecto de cliente-servidor los cuales se conectan a travez de un socket.
Alguien me podria ayudar a contruir una funcion para serializar un datatable y otra para deserializarlo para poder mandarlo a travez del socket? Muchas gracias. Título: Re: Serializacion datatable Publicado por: elmaro en 26 Febrero 2010, 20:09 pm Código
Título: Re: Serializacion datatable Publicado por: [D4N93R] en 26 Febrero 2010, 20:12 pm Hola,
para Serializar usa la clase XmlSerializer, y para Deserializar usa XmlDesserializer. Estoy super corto de tiempo pero va algo asi: Código:
Saludos! Título: Re: Serializacion datatable Publicado por: diego_lp en 9 Marzo 2010, 17:32 pm Gracias a ámbos por contestar, pude solucionarlo con las funciones para serializar y deserializar de elmaro, de todos modos gracias a los dos por tomarse la molestia de contestar.
Tengo una duda mas, el datable que envío por un socket al momento de serializarlo pasa a ocupar al rededor de 400 bytes por registro (es decir, si tiene 100 registros ocupa aproximadamente 40000 bytes. Mi pregunta es la siguiente: ¿hay alguna manera de comprimir ese array de bytes para que ocupe menos al momento de enviarlo por el socket? Muchas gracias a todos. Saludos. Título: Re: Serializacion datatable Publicado por: raul338 en 9 Marzo 2010, 17:39 pm Si usas variables booleanas, puedes convertirlos a flags en un solobyte (7 campos booleanos = 1 Byte!)
Si podes usa ASCII (unicode tiene mas caracteres, pero ocupa 2 bytes por caracter; ASCII ocupa un byte por caracter) Si usas numeros, trata de convertirlos a un byte o 2 (los integer ocupan 4 bytes, si vas a guardar la edad guardala en un solo byte, no creo que alguien tenga mas de 255 años :xD) Y para texto, busca algun algoritmo de compresion Título: Re: Serializacion datatable Publicado por: [D4N93R] en 10 Marzo 2010, 22:37 pm Si se puede, porque el Stream a donde serializas puede ser un memoryStream, ese lo comprimes, y luego lo mandas por el socket.. si no puedes hacerlo me dices y te escribo el codigo.. Que ahora ando un poco corto de tiempo! :D
Saludos! |