Имею недвижимость типа Stream
public System.IO.Stream UploadStream { get; set; }
Как я могу преобразовать его в string
и отправить на другую сторону, где я могу снова преобразовать его в System.IO.Stream
?
Имею недвижимость типа Stream
public System.IO.Stream UploadStream { get; set; }
Как я могу преобразовать его в string
и отправить на другую сторону, где я могу снова преобразовать его в System.IO.Stream
?
Я не знаю, что вы имеете в виду под преобразованием потока в строку. И какова другая сторона?
Чтобы преобразовать поток в строку, вам необходимо использовать кодировку. Вот пример того, как это можно сделать, если предположить, что поток представляет байты в кодировке UTF-8:
using (var reader = new StreamReader(foo.UploadStream, Encoding.UTF8))
{
string value = reader.ReadToEnd();
// Do something with the value
}
После некоторого поиска другие ответы на этот вопрос предполагают, что вы можете сделать это, не зная / не используя кодировку строки. Поскольку поток состоит только из байтов, эти решения в лучшем случае ограничены. Это решение учитывает кодировку:
public static String ToEncodedString(this Stream stream, Encoding enc = null)
{
enc = enc ?? Encoding.UTF8;
byte[] bytes = new byte[stream.Length];
stream.Position = 0;
stream.Read(bytes, 0, (int)stream.Length);
string data = enc.GetString(bytes);
return enc.GetString(bytes);
}
источник - http://www.dotnetfunda.com/codes/show/130/how-to-convert-stream-into-string
Строка для потока - https://stackoverflow.com/a/35173245/183174