Я вызываю метод контроллера MVC.Тип возвращаемого значения - FileStreamResult.В этом методе я создаю изображение в виде байтового массива.Я создаю MemoryStream, передавая байтовый массив в конструкторе.Затем я возвращаю новый объект FileStreamResult с объектом потока памяти и «image / png» в конструкторе, поскольку мое изображение является PNG.
public FileStreamResult GetImage()
{
ImageModel im = new ImageModel();
var image = im.GetImageInByteArray();
var stream = new MemoryStream(image);
return new FileStreamResult(stream, "image/png");
}
Теперь, когда я получаю поток запроса из этоговызов, я просто использую следующий метод для преобразования строки потока в байтовый массив для просмотра изображения.Однако после того, как все это сделано, я получаю на 100+ больше позиций в моем байтовом массиве, чем когда я возвращаюсь из вызова метода контроллера MVC.
public static byte[] ConvertStringToBytes(string input)
{
MemoryStream stream = new MemoryStream();
using (StreamWriter writer = new StreamWriter(stream))
{
writer.Write(input);
writer.Flush();
}
return stream.ToArray();
}
Например, после «GetImageInByteArray ()»вызов, у меня есть "байт [256]".Но когда он возвращается из этого вызова MVC, и я преобразовываю строку ответа, пропуская ее через второй метод, я получаю «byte [398]»;
РЕДАКТИРОВАТЬ ВОПРОС Есть ли какая-то разница между веб-запросом, который я делаю к методу контроллера GetImage (), и тем, что я предполагаю, что получаю?
Я предполагаю, что я получаю от этого вызовапоток памяти байтового массива изображения.Вот почему я просто конвертирую это обратно в байтовый массив.
Мое предположение здесь неверно?