Ошибка при сериализации 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
Код метода в котором объект сериализуеться:
Листинг программы
  1. public void Sender(MessageLib.Message msg)
  2. {
  3. try
  4. {
  5. BinaryFormatter binFormat = new BinaryFormatter();
  6. byte[] buff = new byte[10000000];
  7. using (var memoryStream = new MemoryStream())
  8. {
  9. (new BinaryFormatter()).Serialize(memoryStream, msg); // <- тут ексепшин...
  10. buff = memoryStream.ToArray();
  11. client.Send(buff);
  12. }
  13. }
  14. catch (Exception e)
  15. {
  16. MessageBox.Show(e.ToString());
  17. Connect();
  18. }
.dll которую сериализую:
Листинг программы
  1. using System;
  2. using System.Drawing;
  3. namespace MessageLib
  4. {
  5. [Serializable]
  6. public class Message
  7. {
  8. public string GetCommand { get; set; }
  9. public string GetHWID { get; set; }
  10. public string GetAntiVir { get; set; }
  11. public string GetOS { get; set; }
  12. //public Bitmap GetImgBitmap { get; set; }
  13. public Image GetImg { get; set; }
  14. public Message(string command, string hwid, string antiv, string os)
  15. {
  16. GetCommand = command;
  17. GetHWID = hwid;
  18. GetAntiVir = antiv;
  19. GetOS = os;
  20. }
  21. public Message(string command)
  22. {
  23. GetCommand = command;
  24. }
  25. public Message(string hwid, string antiv, string os)
  26. {
  27. GetHWID = hwid;
  28. GetAntiVir = antiv;
  29. GetOS = os;
  30. }
  31. public Message(string hwid, string antiv, string os,Image img)
  32. {
  33. GetImg = img;
  34. GetHWID = hwid;
  35. GetAntiVir = antiv;
  36. GetOS = os;
  37. }
  38. public Message(Image bm)
  39. {
  40. GetImg = bm;
  41. }
  42. }
  43. }
Я надеюсь это ошибка не связана с тем что Image абстрактный класс ?

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут