Ich habe einen WCF-Dienst, der eine XML-Zeichenfolge zurückgeben muss. Aber es scheint, als ob der Schreiber nur eine Datei und keine Zeichenfolge erstellen möchte. Ich habe versucht:XmlWriter zum Schreiben in eine Zeichenfolge statt in eine Datei
string nextXMLstring = "";
using (XmlWriter writer = XmlWriter.Create(nextXMLstring))
Dies erzeugt einen Fehler, der besagt, dass nextXMLstring nicht einen Dateipfad hat. Es möchte etwas wie:
using (XmlWriter writer = XmlWriter.Create("nextXMLstring.xml"))
Wie kann ich meine XML aufbauen und dann als String zurückgeben ??
Danke !!
@Will: Rolled Ihre Änderung. XmlTextWriter.Close() wird mit dem Stream gespült, also sollte das vor dem Extrahieren der Zeichenfolge geschehen. (Kleiner Unterschied in diesem Fall, aber bevorzugen Sie dies konsequent zu tun, weil Flush-Semantik von * Writer- und Stream-Klassen nicht immer eindeutig dokumentiert ist.) – Richard
Nur ein Kommentar für Leute, die dies verwenden. Wenn Sie die Verwendung von using() weglassen und stattdessen Ihren XmlWriter normal deklarieren, dann stellen Sie sicher, dass Sie xw.Flush aufrufen, bevor Sie sw.ToString() aufrufen, sonst erhalten Sie möglicherweise nicht alle Inhalte! (Offensichtlich besser, die Verwendung von Klammern ...) – Ravendarksky
Beachten Sie, dass der folgende Code CA2202 Warnung während der Code-Analyse gibt, weil Dispose() -Methode zweimal auf StringWriter-Objekt aufgerufen wird –