Asp.net 关于XMLTextWriter和Streams的问题
我们有一个VXML项目,由第三方解析,为我们提供一个电话导航系统。我们要求他们输入一个id代码来留言,稍后我们公司会对其进行审核 我们目前的工作如下:Asp.net 关于XMLTextWriter和Streams的问题,asp.net,stream,xmltextwriter,Asp.net,Stream,Xmltextwriter,我们有一个VXML项目,由第三方解析,为我们提供一个电话导航系统。我们要求他们输入一个id代码来留言,稍后我们公司会对其进行审核 我们目前的工作如下: Response.Cache.SetCacheability(HttpCacheability.NoCache); Stream m = new MemoryStream(); //Create Memory Stream - Used to create XML document in Memory XmlTextWriter XML_Writ
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Stream m = new MemoryStream(); //Create Memory Stream - Used to create XML document in Memory
XmlTextWriter XML_Writer = new XmlTextWriter(m, System.Text.Encoding.UTF8);
XML_Writer.Formatting = Formatting.Indented;
XML_Writer.WriteStartDocument();
/* snip - writing a valid XML document */
XML_Writer.WriteEndDocument();
XML_Writer.Flush();
m.Position = 0;
byte[] b = new byte[m.Length];
m.Read(b, 0, (int)m.Length);
XML_Writer.Close();
HttpContext.Current.Response.Write(System.Text.Encoding.UTF8.GetString(b, 0, b.Length));
我只是在维护这个应用程序,不是我写的…但结尾部分对我来说似乎很复杂
我知道它会获取输出流并将写入的XML输入其中……但为什么它会首先读取整个字符串?这不是效率低下吗
是否有更好的方法来编写上述代码?是的,只需直接写入响应
输出(IO.StreamWriter)或输出流
(IO.Stream):
是的,只需直接写入响应输出
(IO.StreamWriter)或输出流
(IO.Stream):
然后我就可以调用XML_Writer.Flush(),对吗?这将把XML刷新到流中?之后,我可以调用XML\u Writer.flush(),对吗?这将把XML刷新到流中?您可以直接写入响应流:
Response.Cache.SetCacheability(HttpCacheability.NoCache)
XmlWriter XML_Writer=XmlWriter.Create(HttpContext.Current.Response.Output);
要向writer添加设置,最好使用较新的类。将其作为参数提供给XmlWriter.Create函数。您可以直接写入响应流:
Response.Cache.SetCacheability(HttpCacheability.NoCache)
XmlWriter XML_Writer=XmlWriter.Create(HttpContext.Current.Response.Output);
要向writer添加设置,最好使用较新的类。将其作为XmlWriter.Create函数的参数。这仅适用于XmlWriter类,而不是我正在使用的XmlTextWriter…更改会有什么损失?XmlTextWriter继承自XmlWriter类。原则上,输出载体(文本/流等)与写入部分分离。Create是在.NET2.0中引入的,是制作XML编写器的“首选方法”。请参阅XmlWriter.Create的msdn文档中的备注部分。这仅适用于XmlWriter类,而不适用于我正在使用的XmlTextWriter…更改会带来什么损失?XmlTextWriter继承自XmlWriter类。原则上,输出载体(文本/流等)与写入部分分离。Create是在.NET2.0中引入的,是制作XML编写器的“首选方法”。请参阅XmlWriter.Create的msdn文档中的备注部分。
XmlTextWriter XML_Writer = new XmlTextWriter(HttpContext.Current.Response.OutputStream, HttpContext.Current.Response.Encoding);
//...
XML_Writer.Flush();