gpt4 book ai didi

c# - 如何从 Visual Studio 2003 中的调试器检查 XML 流

转载 作者:可可西里 更新时间:2023-11-01 08:42:20 25 4
gpt4 key购买 nike

我必须编辑一个 XSLT 样式表,但我正在盲目飞行,因为 XML 输入仅在一堆流中短暂存在。我可以调试代码,但无法弄清楚如何将流的内容输出到我可以查看的文本中(并在我编辑它们时手动运行 XSLT)。

该代码是一个大型旧遗留系统的一部分,如果绝对必要,我可以在调试环境中修改它,但它在连接到一堆 MSMQ 的 Windows 服务中运行。因此出于各种原因,我宁愿能够使用调试器来查看 XML,而不必先更改代码。

代码大大简化,是这样的:(C# - 但请记住它是 VS 2003 中的 .net 1.1。)

该函数将 XML 作为流获取,然后将其馈送到某种 XSLT 转换对象中。我尝试在监 window 口和即时窗口中查看 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!
}

非常感谢所有帮助。

最佳答案

您可以在 MemoryStream 准备好后简单地将此表达式添加到您的监 window 口:

(new StreamReader(xmlStream)).ReadToEnd();

监视表达式不需要是简单的变量值。它们可以是复杂的表达式,但它们会有副作用。正如您所注意到的,这将中断执行,因为流内容将被完全读出。如果您需要重新开始执行,您可以在中断后使用另一个表达式重新创建流。

这种情况在使用流调试代码时经常出现,所以我避免使用它们来执行简单、独立的任务。不幸的是,对于大型系统,事先知道是否应该使代码面向流并不总是那么容易,因为这在很大程度上取决于它的使用方式。然而,我认为在许多情况下使用流是过早的优化。

关于c# - 如何从 Visual Studio 2003 中的调试器检查 XML 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/830408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com