XmlSerializer.Deserialize () desde el socket c #

Aquí hay un fragmento de código de mi aplicación:

using (NetworkStream ns = new NetworkStream(newClientSock))
{
   XmlSerializer xs = new XmlSerializer(typeof(RSAParameters));
   xs.Serialize(ns, _publicKey);

   RSAParameters clientPubKey = (RSAParameters)xs.Deserialize(ns);
}

Lo que intento hacer es una forma de "Handshake" entre dos sockets de clientes. No estoy muy familiarizado con la serialización, entonces mi pregunta es, ¿el objeto XmlSerializer (xs) esperará a que se envíe algo y luego lo desirialice, o los datos que necesitan ser desirializados ya deberían estar en esa corriente?

Gracias por adelantado,

0

1 Respuestas

XmlSerializer leerá la transmisión a medida que llegue al final del socket (es decir, esperará). No hay necesidad de protegerlo. Sin embargo, un error común es no enjuagar la corriente de salida en el extremo emisor (haciendo que el deserializador en el otro extremo espere por siempre). Debes asegurarte de enjuagarlo después de llamar a Serialize ().

0
agregado
Gracias por responder tan rápido, aunque sabía que debería esperar, ¡no pude encontrar ninguna respuesta en línea! :)
agregado el autor Alexander Pap., fuente