Ich hatte eine kurze Frage bezüglich der DatacontractSerializer. Vielleicht ist es eher eine Stream-Frage. Ich habe einen Code gefunden, der das XML in einen Filestream schreibt. Ich möchte im Grunde nicht die Datei und brauche nur die String-Ausgabe.DataContractSerializer - wie kann ich die XML in eine Zeichenfolge ausgeben (im Gegensatz zu einer Datei)
public static string DataContractSerializeObject<T>(T objectToSerialize)
{
var fs = new FileStream("test.xml", FileMode.OpenOrCreate);
var serializer = new DataContractSerializer(typeof(T));
serializer.WriteObject(fs, objectToSerialize);
fs.Close();
return fs.ToString();
}
fs.ToString() ist offensichtlich nicht das, was ich suche. Welcher Stream oder Schreiber usw. kann ich nur verwenden, um die richtige Zeichenfolge zurückzugeben und keine Datei zu erstellen? Ich habe mir den XML-Code angeschaut, den der Filestream erstellt hat, und es ist genau das, wonach ich suche. Der XmlSerializer hat das XML etwas seltsam geschrieben und ich bevorzuge in diesem Fall die Ausgabe des DataContractSerializers. Kann mir jemand in die richtige Richtung zeigen?
Sieht aus wie du inter änderte den Parameter, es sollte memStm.Seek sein (0, SeekOrigin.Begin); – xar
@xar: Ja, du hast absolut recht - danke, dass du diesen Fehler entdeckt hast - ich habe ihn jetzt behoben –
Diese Lösung kodiert unnötigerweise zu/von utf8. –