Ich möchte Objekte zu Strings und zurück serialisieren.Stream in String und zurück konvertieren ... was fehlt uns?
Wir verwenden probobuf-net, um ein Objekt erfolgreich in einen Stream und zurück zu verwandeln.
Allerdings Stream zu String und zurück ... nicht so erfolgreich. Nachdem StreamToString
und StringToStream
durchgegangen wurde, ist das neue Stream
nicht deserialisiert durch protobuf-net; es löst eine Arithmetic Operation resulted in an Overflow
Ausnahme aus. Wenn wir den ursprünglichen Stream deserialisieren, funktioniert es.
Unsere Methoden:
public static string StreamToString(Stream stream)
{
stream.Position = 0;
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
return reader.ReadToEnd();
}
}
public static Stream StringToStream(string src)
{
byte[] byteArray = Encoding.UTF8.GetBytes(src);
return new MemoryStream(byteArray);
}
Unser mit Beispielcode diese beiden:
MemoryStream stream = new MemoryStream();
Serializer.Serialize<SuperExample>(stream, test);
stream.Position = 0;
string strout = StreamToString(stream);
MemoryStream result = (MemoryStream)StringToStream(strout);
var other = Serializer.Deserialize<SuperExample>(result);
Zur Klärung bearbeitet, ty. – flipuhdelphia
sollte nicht Stream MemoryStrea sein? – Ehsan