StreamReader.ReadToEnd () gibt eine leere Zeichenfolge zurück

Ich habe eine Methode

private static String DecompressAndDecode(byte[] data)
{
   GZipStream decompressor = new GZipStream(new MemoryStream(data), CompressionMode.Decompress);
   StreamReader decompressed = new StreamReader(decompressor, Encoding.UTF8);
   String result = decompressed.ReadToEnd();
   return result;
}

Ich habe GZipped-Text als Eingabe und das Ergebnis soll eine String-Darstellung dieses Texts sein. Das Problem ist, dass die Methode eine leere Zeichenfolge zurückgibt. Was mich verwundert, ist, dass die Ergebnisvariable beim Durchlaufen der Methode im Debug-Modus und Erreichen der return-Anweisung eine leere Zeichenfolge ist. Wenn ich jedoch eine Überwachung für den dekomprimierten.ReadToEnd () -Ausdruck erstelle, wird mir der Text zurückgegeben. An dieser Stelle würde ich erwarten, dass die Ergebnisvariable den Text und den dekomprimierten Ausdruck ReadToEnd () enthält, der als leere Zeichenfolge ausgewertet wird. (Wenn Sie den Ausdruck decompressed.ReadToEnd () erneut auswerten, wird erwartungsgemäß eine leere Zeichenfolge zurückgegeben.)

@Bearbeiten Ich habe das gefundenin meinem Fal ReadToEnd () gibt den Text @ zurü beim zweiten Anruf beim ersten Aufruf und nach dem zweiten Aufruf leere Zeichenketten zurückgeben.

Es muss offensichtlich sein, dass ich hier vermisse.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage