Проблема с использованием XmlTextWriter с MemoryStreams - PullRequest
2 голосов
/ 27 октября 2009

У меня проблемы с получением потока памяти и класса XML-редактора текста для совместной работы.

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();

Это делается внутри файла ASHX. Когда я запускаю это, все, что получает вывод, это

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

Я что-то упустил в Response, или в потоке памяти, или в модуле записи XML-текста? Я немного растерялся, потому что я следую небольшому руководству, которое делает все, что показывает, но вместо этого использует поток памяти, и он не работает .

1 Ответ

2 голосов
/ 27 октября 2009

Вы пытались удалить -1 в Length? Я думаю, что единственное, чего не хватает в выводе - это ">".

Context.Response.OutputStream.Write(stmOutput.ToArray(), 0, (int)stmOutput.Length);
...