Pregunta

Tengo problemas para conseguir que una secuencia de memoria y una clase de escritor de texto XML funcionen juntas correctamente.

Context.Reponse.BufferOutput=true;
Context.Response.ContentType = "application/xml";
stmOutput = new MemoryStream();
Output = new XmlTextWriter(stmOutput, Encoding.ASCII);
Output.WriteStartDocument();
Output.WriteStartElement("MyTag");
Output.WriteEndElement();
Output.WriteEndDocument();
Output.Flush();
stmOutput.Flush(); 
Context.Response.OutputStream.Write(stmOutput.ToArray(),0,(int)stmOutput.Length-1);
Context.Response.OutputStream.Flush();
Output.Close();

Esto se está haciendo dentro de un archivo ASHX. Cuando ejecuto esto, todo lo que sale es

<?xml version="1.0" encoding="us-ascii"?><MyTag /

¿Me estoy perdiendo algo con Response, o la secuencia de memoria o el escritor de texto XML? Estoy un poco perdido porque sigo una pequeña guía para hacer todo lo que muestra, pero en su lugar uso un flujo de memoria, y no funciona. .

¿Fue útil?

Solución

¿Has intentado eliminar el -1 en Length ? Creo que lo único que falta en la salida es un " > " .

Context.Response.OutputStream.Write(stmOutput.ToArray(), 0, (int)stmOutput.Length);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top