Разница между Stream.CopyTo и MemoryStream.WriteTo

У меня есть HttpHandler, возвращающий изображение через Response.OutputStream. У меня есть следующий код: Метод

_imageProvider.GetImage().CopyTo(context.Response.OutputStream);

GetImage()возвращает Stream, который на самом деле является экземпляром MemoryStreamи возвращает браузеру 0 байтов. Если я изменю сигнатуру метода GetImage(), чтобы она возвращала MemoryStream, и использую следующую строку кода:

_imageProvider.GetImage().WriteTo(context.Response.OutputStream);

Это работает, и браузер получает изображение. Итак, в чем разница между WriteTo и CopyTo в классе MemoryStream, и каков рекомендуемый способ заставить это работать, используя класс Streamв сигнатуре метода GetImage().

29
задан jorgehmv 18 May 2012 в 21:15
поделиться