XmlSerializer.Deserialize () von Socket c #

Hier ist ein Stück Code aus meiner Bewerbung:

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

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

Was ich versuche zu tun ist eine Form von "Handshake" zwischen zwei Client-Sockets. Ich bin nicht sehr vertraut mit der Serialisierung, also meine Frage ist, wird das XmlSerializer (xs) -Objekt warten auf etwas zu senden und dann es zu desiralisieren, oder die Daten, die desirialized sollte bereits in diesem Stream sein?

Danke im Voraus,

0

1 Antworten

XmlSerializer wird den Stream lesen, wenn er am Ende des Sockets ankommt (d. H. Wartet). Es besteht keine Notwendigkeit, es zu puffern. Ein häufiger Fehler besteht jedoch nicht darin, den Ausgabestrom am Senderende zu löschen (der Deserializer am anderen Ende wartet also immer). Sie sollten sicherstellen, dass Sie es nach dem Aufruf von Serialize() leeren.

0
hinzugefügt
Danke für die schnelle Antwort, obwohl ich wusste, dass es warten sollte, konnte ich keine Antwort online finden! :)
hinzugefügt der Autor Alexander Pap., Quelle