Ошибка при сериализации 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];