Wie kann ich einen HTTP-Antwortstream zweimal in C # lesen?

Ich versuche, einen HTTP-Antwort-Stream zweimal über Folgendes zu lesen:

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
stream = response.GetResponseStream();
RssReader reader = new RssReader(stream);
do
{
  element = reader.Read();
  if (element is RssChannel)
  {
    feed.Channels.Add((RssChannel)element);
  }
} while (element != null);

StreamReader sr = new StreamReader(stream);
feed._FeedRawData = sr.ReadToEnd();

Wenn der StreamReader-Code ausgeführt wird, werden jedoch keine Daten zurückgegeben, da der Stream jetzt das Ende erreicht hat. Ich habe versucht, den Stream über stream.Position = 0 zurückzusetzen, aber dies löst eine Ausnahme aus (ich denke, weil der Stream seine Position nicht manuell ändern kann).

Grundsätzlich möchte ich den Stream für XML analysieren und Zugriff auf die Rohdaten haben (im String-Format).

Irgendwelche Ideen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage