And*_*w M 11 c# xml .net-1.1 visual-studio-2003 stream
我必须编辑一个XSLT样式表,但我是盲目的,因为XML输入仅在一堆流中短暂存在.我可以调试代码,但无法弄清楚如何将流的内容输出到我可以看到的文本中(并在我编辑它们时手动运行XSLT).
代码是一个很大的遗留系统的一部分,我可以在调试环境中修改它,如果绝对必要,但它运行在一个连接到一堆MSMQ的Windows服务中.因此,出于各种原因,我宁愿能够使用调试器来查看XML,而无需先更改代码.
代码大大简化了,就像这样:( C# - 但在VS 2003中记住它是.net 1.1.)
这是将XML作为流获取的函数,然后将其提供给某种XSLT转换对象.我已经尝试在监视窗口和即时窗口中查看writer和xmlStream对象,但无法理解如何查看实际的XML.
private MemoryStream GetXml()
{
MemoryStream xmlStream;
xmlStream = new MemoryStream();
XmlWriter writer = new XmlTextWriter(xmlStream, Encoding.UTF8);
writer.WriteStartDocument();
//etc etc...
writer.WriteEndDocument();
writer.Flush();
xmlStream.Position = 0;
return xmlStream; //Goes off to XSLT transform thingy!
}
Run Code Online (Sandbox Code Playgroud)
所有人都非常感谢.
Pet*_*ebb 14
您可以在MemoryStream准备就绪后将此表达式添加到监视窗口:
(new StreamReader(xmlStream)).ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
监视表达式不需要是简单的变量值.它们可以是复杂的表达,但它们会产生副作用.正如您所指出的,这将中断执行,因为流内容将被完全读出.如果需要重新开始执行,可以在中断后使用另一个表达式重新创建流.
当使用流来调试代码时,这种情况经常出现,因此我将它们用于简单,自包含的任务.不幸的是,对于大型系统而言,事先并不容易知道是否应该使代码流面向,因为它在很大程度上取决于它的使用方式.但是,我认为在许多情况下使用流是不成熟的优化.
| 归档时间: |
|
| 查看次数: |
5186 次 |
| 最近记录: |