Ошибка при сериализации 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];
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д