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 () возвращает текстна второй звонок возврат пустых строк при первом вызове и после второго вызова.
Там должно быть что-то очевидное, что я здесь скучаю.