Stream jak przechowywać ?

0

Witam, mam taki problem, że w pewnej klasie pobieram Stream z HttpWebResponse.GetResponseStream(), następnie owa klasa udostępnia parę metod, m.in.

  • zwrócenie tego strumienia
  • zwrócenie tego strumienia w postaci Stringu -- za pomocą StreamReaderu i ReadToEnd()
  • zwrócenie obiektu po deserializacji xml

Zarówno w deserializacji, jak i konwertowaniu do stringu i zwracaniu Streamu operujemy na klasie Stream.

Kłopot mój jest taki, że jeśli ktoś najpierw spróbuje pobrać String, a następnie będzie chciał zwrócić zdeserializowany obiekt, otrzyma błąd, gdyż buffor będzie już pusty. Można temu jakoś zaradzić ?

Czy jedyne wyjście z sytuacji, to zamiast trzymania Stream, przechowywać byte[], a następnie w każdej z metod tworzyć strumień i dopiero go używać ?

0
Czy jedyne wyjście z sytuacji, to zamiast trzymania Stream, przechowywać byte[], a następnie w każdej z metod tworzyć strumień i dopiero go używać ?

Brzmi dobrze. Aha - rozumiem, że instancja klasy jest w domyślnie "jednorazowa". To znaczy - jedna instancja ma za zadanie pobrać jakieś dane i od tej pory nie można ich zmienić.

Inna sprawa, że zawsze możesz też użyć Seek()

0

Dziekuję za odp, chciałem się tylko upewnić, czy nie ma lepszego sposobu :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1