Tengo un servicio WCF que necesita devolver una cadena de XML. Pero parece que el escritor solo quiere construir un archivo, no una cadena. Intenté:XmlWriter para escribir en una cadena en lugar de en un archivo
string nextXMLstring = "";
using (XmlWriter writer = XmlWriter.Create(nextXMLstring))
Esto genera un error diciendo que nextXMLstring no tiene una ruta de archivo. Quiere algo como:
using (XmlWriter writer = XmlWriter.Create("nextXMLstring.xml"))
¿Cómo puedo construir mi XML y luego devolverlo como una cadena?
Gracias!
@Will: redujo el cambio. XmlTextWriter.Close() se va a enjuagar a la secuencia, por lo que quiere que suceda antes de extraer la cadena. (Poca diferencia en este caso, pero prefiere hacerlo de forma consistente porque la semántica de enjuague de las clases * Writer y Stream no siempre está claramente documentada). – Richard
Solo un comentario para las personas que usan esto. Si omite el uso de() y en su lugar declara su XmlWriter normalmente, asegúrese de llamar a xw.Flush antes de llamar a sw.ToString() o de lo contrario, puede que no obtenga todo el contenido. (Obviamente, es mejor utilizar los corchetes de uso ...) – Ravendarksky
Tenga en cuenta que el siguiente código da CA2202 advertencia durante el análisis del código, porque el método Dispose() se llamará dos veces en el objeto StringWriter –