Ich habe ein skurilles Problem:
Zur Versendung instanziierter Objekte via WebService serialisiere ich diese und verschicke sie als string zum Client.
Das geschieht folgendermaßen:
public static string SerializeBinary(object request)
{
string theString = "";
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter serializer =
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.MemoryStream memStream = new System.IO.MemoryStream();
serializer.Serialize(memStream, request);
// convert memory stream to string
memStream.Position=0;
using (System.IO.StreamReader sr = new System.IO.StreamReader(memStream) )
{
theString = sr.ReadToEnd();
// Close and clean up the StreamReader
sr.Close();
}
// return xml string
return theString;
}
Mit dieser Methode erhalte ich von dem entsprechenden Objekt einen serialisierten String.
Problem taucht dann aber beim Client auf. Ich bekomme es nicht geregelt, diesen String wieder in ein MemoryStream zu wandeln um mit serializer.Deserialize(memStream); den deserialisierungsprozess anzuschmeissen :-(
Wie wandle ich den String um und übergebe ihn der Deserialize() Funktion? Konkretes Problem:
Wenn ich einen MemoryStream aus dem String ertstelle, dann ist er geschlossen, und es gibt einen Laufzeitfehler, oder ich schließe ihn nach der Verarbeitung, dann meldet aber Deserialize() dass ein unerwartetes Ende im Stream aufgetreten ist ???
ODER: vielleicht gibt es eine andere Art und Weise aus dem String wieder ein instanziiertes Objekt zu machen?
Für Hilfe wäre ich sehr dankbar,
Norman-Timo