Передача массива как поля объекта при помощи XmlSerializer
Код:
public class Data
{
public string Command
{ get; set; }
public byte[] Product_Image
{ get; set; }
{
public string Command
{ get; set; }
public byte[] Product_Image
{ get; set; }
Код:
Data obj = new Data();
obj.Command = "Insert_Product";
string fileName = openFileDialog1.FileName;
if (fileName != "openFileDialog1")
{
Image image = Image.FromFile(fileName);
MemoryStream memoryStream = new MemoryStream();
image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp);
obj.Product_Image = memoryStream.ToArray();
}
byte[] msg = Client.Serialize(obj);
Client.SendMessageReturnData(11000, msg);
obj.Command = "Insert_Product";
string fileName = openFileDialog1.FileName;
if (fileName != "openFileDialog1")
{
Image image = Image.FromFile(fileName);
MemoryStream memoryStream = new MemoryStream();
image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp);
obj.Product_Image = memoryStream.ToArray();
}
byte[] msg = Client.Serialize(obj);
Client.SendMessageReturnData(11000, msg);
Быть может я некорректно передаю или записываю?
Как я понял вообще сериализовать массив байт как поле при помощи XmlSerializer нельзя. Пробовал передавать в виде Image, но экземпляр ругается на "нежданный" тип данных Image.
Собственно, вопрос: каким образом можно передать картинку как поле объекта (и в каком виде), по возможности не прибегая к небезопасному коду?
В общем проблема все еще существует, но в ином роде: сериализация отрабатывает, массив байт получается, но при передаче серверу большая часть данных не доходит. Другими словами: отправил массив в 175 кб, принял на сервере 25 кб, отсюда и ошибка. В чем может быть проблема?