Мне нужно передать поток нескольким функциям в другом классе, но выдает ошибку
Невозможно получить доступ к закрытому потоку
Вот код:
первый метод:
Здесь он открывает файл с помощью метода File.Open, затем создает объект потока памяти и копирует FileStream в MemoryStream.затем устанавливает Позицию в 0 (я устанавливаю позицию в 0, потому что я был в решении, но не помогал).Затем он создает объект класса DocxConvert
и вызывает метод Converto
, передавая ему MemoryStream.
using (var stream = File.Open(tempPath2, FileMode.Open))
{
using(var ms = new MemoryStream())
{
stream.CopyTo(ms);
ms.Position = 0;
using (var docx = new DocxConvert())
{
return docx.Converto(ms);
}
}
}
DocxConvert Class:
Он принимает поток и затем вызывает copyStream
метод путем передачи принятого потока.
метод copyStream в классе DocxConvert: он должен скопировать принятый поток в другой поток с именем _memoryStream
, который является свойством класса.
public class DocxConvert
{
private MemoryStream _memoryStream = new MemoryStream();
public bool Converto(Stream stream)
{
try
{
copyStream(stream);
//more code
}
catch (IOException ex)
{
Debug.WriteLine(ex);
}
return true;
}
private void copyStream(Stream stream)
{
stream.CopyTo(_memoryStream); //here it throws the error
}
}
ps Я ищу эту ошибку здесь перед публикацией, но ни одна из тем не помогла мне.
решено перезагрузкой ПК, код это нормально.