Ho un servizio WCF che deve restituire una stringa di XML. Ma sembra che lo scrittore voglia solo creare un file, non una stringa. Ho provato:XmlWriter da scrivere su una stringa anziché su un file
string nextXMLstring = "";
using (XmlWriter writer = XmlWriter.Create(nextXMLstring))
Questo genera un errore che dice nextXMLstring non ha una percorso di file. Vuole qualcosa tipo:
using (XmlWriter writer = XmlWriter.Create("nextXMLstring.xml"))
Come posso creare il mio XML e quindi restituirlo come stringa ??
Grazie !!
@Will: ripristinato la modifica. XmlTextWriter.Close() arriverà allo stream, quindi vuoi che succeda prima di estrarre la stringa. (Poco differenza in questo caso, ma preferisco farlo in modo coerente perché la semantica dei flussi delle classi * Writer e Stream non è sempre chiaramente documentata.) – Richard
Solo un commento per le persone che usano questo. Se ti capita di omettere l'uso di() e invece dichiari il tuo XmlWriter normalmente assicurati di chiamare xw.Flush prima di chiamare sw.ToString() altrimenti potresti non ottenere tutto il contenuto! (Ovviamente meglio usare le parentesi usando ...) – Ravendarksky
Ricorda che il seguente codice dà l'avviso CA2202 durante l'analisi del codice, perché il metodo Dispose() verrà chiamato due volte sull'oggetto StringWriter –