Ошибка при сериализации Image - C#
Формулировка задачи:
При серализации Image вылетает исключение: В GDI+ возникла ошибка общего вида.
PS: Если вместо Image использую Bitmap все работает !
StackTrace:
Код метода в котором объект сериализуеться:
.dll которую сериализую:
в 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();
- }
Листинг программы
- 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];
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д