Ich habe eine Methode
%Vor%Ich habe Text mit GZipped als Eingabe und das Ergebnis soll eine String-Darstellung dieses Textes sein. Das Problem ist, dass die Methode eine leere Zeichenfolge zurückgibt. Was mich verwirrt, ist, dass, wenn ich die Methode im Debug-Modus durchlaufen und die return-Anweisung erreiche, die Ergebnisvariable eine leere Zeichenfolge ist, aber wenn ich eine Überwachung für den dekomprimierten.ReadToEnd () -Ausdruck anlege, gibt sie mir den Text zurück. Was ich an dieser Stelle erwarten würde, ist die Ergebnisvariable, die den Text enthält, und der dekomprimierte.ReadToEnd () - Ausdruck, der eine leere Zeichenfolge auswertet. (Das erneute Auswerten des dekomprimierten.ReadToEnd () - Ausdrucks gibt eine leere Zeichenfolge wie erwartet zurück.)
@Edit: Ich habe festgestellt, dass in meinem Fall ReadToEnd () den Text beim zweiten Aufruf zurückgibt und leere Strings auf dem ersten zurückgibt Anruf und nach dem zweiten Anruf.
Es muss etwas offensichtlich sein, dass ich hier vermisse.
Ich denke, dein Problem ist die Position des Zeigers im Dampf. Jedes Mal, nachdem Sie ReadToEnd
ausgeführt haben, wird der Zeiger auf das Ende gesetzt, weshalb Sie ihn das erste Mal ansehen können.
Führen Sie den folgenden Code vor ReadToEnd
aus, um den Zeiger an den Anfang zu setzen.
someStream.Seek(0, SeekOrigin.Begin)