StreamReader.ReadToEnd (), возвращающий пустую строку

У меня есть метод

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;
}

У меня есть некоторый текст GZipped в качестве входных данных, и результат должен быть строковым представлением этого текста. Проблема в том, что метод возвращает пустую строку. Что меня озадачивает, так это то, что когда я перехожу через метод в режиме отладки и достигаю оператора return, переменная результата является пустой строкой, но если я создаю часы для выражения decompressed.ReadToEnd (), он возвращает мне текст. На данный момент я ожидаю, что переменная результата будет содержать текст и выражение decompressed.ReadToEnd (), оцениваемое в пустую строку. (Переоценка выражения decompressed.ReadToEnd () возвращает пустую строку, как и ожидалось).

@Редактировать: Я обнаружил, чтов моем случае ReadToEnd () возвращает текстна второй звонок возврат пустых строк при первом вызове и после второго вызова.

Там должно быть что-то очевидное, что я здесь скучаю.

Ответы на вопрос(3)

Ваш ответ на вопрос