Ошибка при сериализации Image - C#

Узнай цену своей работы

Формулировка задачи:

При серализации Image вылетает исключение: В GDI+ возникла ошибка общего вида. PS: Если вместо Image использую Bitmap все работает ! StackTrace:
в System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams) в System.Drawing.Image.Save(MemoryStream stream) в System.Drawing.Image.System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo si, StreamingContext context) в System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) в System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) в System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) в System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck) в System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) в MSNClient.Client.Sender(Message msg) в C:\Users\Pasha\Documents\Visual Studio 2015\Projects\MSNClient\MSNClient\Client.cs:строка 103
Код метода в котором объект сериализуеться:
 public void Sender(MessageLib.Message msg)
        {
            try
            {
                BinaryFormatter binFormat = new BinaryFormatter();
                byte[] buff = new byte[10000000];
                using (var memoryStream = new MemoryStream())
                {
                    (new BinaryFormatter()).Serialize(memoryStream, msg); // <- тут ексепшин...
                    buff = memoryStream.ToArray();
                    client.Send(buff);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
                Connect();
 
            }
.dll которую сериализую:
using System;
using System.Drawing;
 
namespace MessageLib
{
    [Serializable]
    public class Message
    {
        public string GetCommand { get; set; }
        public string GetHWID { get; set; }
        public string GetAntiVir { get; set; }
        public string GetOS { get; set; }
        //public Bitmap GetImgBitmap { get; set; }
        public Image GetImg { get; set; }
        public Message(string command, string hwid, string antiv, string os)
        {
            GetCommand = command;
            GetHWID = hwid;
            GetAntiVir = antiv;
            GetOS = os;
        }
        public Message(string command)
        {
            GetCommand = command;
        }
        public Message(string hwid, string antiv, string os)
        {
            
            GetHWID = hwid;
            GetAntiVir = antiv;
            GetOS = os;
        }
        public Message(string hwid, string antiv, string os,Image img)
        {
            GetImg = img;
            GetHWID = hwid;
            GetAntiVir = antiv;
            GetOS = os;
        }
        public Message(Image bm)
        {
            GetImg = bm;
        }
    }
 
}
Я надеюсь это ошибка не связана с тем что Image абстрактный класс ?

Решение задачи: «Ошибка при сериализации Image»

textual
Листинг программы
byte[] buff = new byte[10000000];

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5