Вам нужно будет прочитать все данные из объекта Stream в буфер byte[]
и затем передать их в MemoryStream
через его конструктор. Может быть лучше быть более точным в отношении типа объекта потока, который вы используете. Stream
является очень общим и может не реализовывать атрибут Length
, который довольно полезен при чтении данных.
Вот код для вас:
public MyClass(Stream inputStream) {
byte[] inputBuffer = new byte[inputStream.Length];
inputStream.Read(inputBuffer, 0, inputBuffer.Length);
_ms = new MemoryStream(inputBuffer);
}
Если объект Stream
не реализует атрибут Length
, вам придется реализовать что-то вроде этого:
public MyClass(Stream inputStream) {
MemoryStream outputStream = new MemoryStream();
byte[] inputBuffer = new byte[65535];
int readAmount;
while((readAmount = inputStream.Read(inputBuffer, 0, inputBuffer.Length)) > 0)
outputStream.Write(inputBuffer, 0, readAmount);
_ms = outputStream;
}