У меня есть метод
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 () возвращает пустую строку, как и ожидалось).
@ Edit: Я обнаружил, что в моем случае ReadToEnd () возвращает текст при втором вызове , возвращая пустые строки при первом вызове и после второй звонок.
Должно быть что-то очевидное, что я здесь упускаю.