Ich versuche, ein Objekt in eine Xml-Zeichenfolge zu schreiben und diese Zeichenfolge und speichern Sie es in eine DB. Aber zuerst muss ich die Zeichenfolge ...Lesen aus dem Speicher-Stream in Zeichenfolge
private static readonly Encoding LocalEncoding = Encoding.UTF8;
public static string SaveToString<T> (T settings)
{
Stream stream = null;
TextWriter writer = null;
string settingsString = null;
try
{
stream = new MemoryStream();
var serializer = new XmlSerializer(typeof(T));
writer = new StreamWriter(stream, LocalEncoding);
serializer.Serialize(writer, settings);
var buffer = new byte[stream.Length];
stream.Read(buffer, 0, (int)stream.Length);
settingsString = LocalEncoding.GetString(buffer);
}
catch(Exception ex)
{
// If the action cancels we don't want to throw, just return null.
}
finally
{
if (stream != null)
stream.Close();
if(writer != null)
writer.Close();
}
return settingsString;
}
Dies scheint zu funktionieren, wird der Stream mit Bytes gefüllt. Aber wenn ich es wieder in den Puffer und dann in die Zeichenfolge lese ... wird der Puffer mit '0' gefüllt! Nicht sicher, was ich hier falsch mache Jungs.
möglich Duplikat [Wie Sie eine Zeichenfolge aus einem Memorystream erhalten Sie?] (Http://stackoverflow.com/questions/78181/how-do-you-get-a-string-from -a-memorystream) – andyp