StreamReader问题

时间:2010-02-26 22:01:57

标签: c# rest

如果我从这个代码的起始行中放入一个debuger并逐步完成我什么也得不到 行后的事件

    xmlData = reader.ReadToEnd(); 

但是如果我在这段代码的最后一行有调试器..在大括号关闭的地方,我得到了一切。我不知道这只是debuger表现得疯狂还是真实的东西

using (StreamReader reader = new StreamReader(context.Request.InputStream))
{
    xmlData = reader.ReadToEnd();
}

谁能告诉我发生了什么事。因为有时我无法从streamreader获取任何数据,即使数据发送正确。

由于

2 个答案:

答案 0 :(得分:5)

在调用ReadToEnd方法之前,读者不会执行实际的“读取”。你想做什么?

答案 1 :(得分:1)

如果你在一行上设置一个断点,那么就会在该行执行之前发生中断,所以你不会得到任何数据就不足为奇了。

但我怀疑你的意思是你放置一个断点,然后慢慢地逐步执行代码,直到你到达终点然后检查变量的内容并发现它们是空的。

  • 一个原因可能是时间问题。可能是您正在阅读的服务超时
  • 另一个原因可能是代码中的竞争条件
  • 另一个可以引起人们注意的意外事情是手表可能会导致副作用,单步执行代码会导致手表重新评估。这可以根据您放置断点的位置来更改程序的状态。在评估时,您应该注意不要在具有副作用的属性上设置监视。