2015-09-14 52 views
-1

这是我的序列化和反序列码C#序列化异常

public byte[] DTSerialize(object dt) 
    { 
     MemoryStream stream = new MemoryStream(); 
     System.Runtime.Serialization.IFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); 
     formatter.Serialize(stream, dt); 
     return stream.GetBuffer(); 
    } 


    public object DTDeserialize(byte[] buffer) 
    { 
     MemoryStream stream = new MemoryStream(buffer); 
     System.Runtime.Serialization.IFormatter formatter = new BinaryFormatter(); 

     return formatter.Deserialize(stream) as object; 
    } 

而且这次调用方法的代码

 List<Series> ser = new List<Series>(); 
     foreach (Series item in chartControl1.Series) 
     { 
      ser.Add(item); 
     } 


byte[] btt = DTSerialize(ser); 

但是当我调用代码这个异常抛出

未处理的异常类型'System.Runtime.Serialization.SerializationException'发生在 mscorlib.dll

附加信息:在 组件类型 'DevExpress.XtraCharts.Series' 'DevExpress.XtraCharts.v14.1,版本= 14.1.4.0, 文化=中性公钥= b88d1754d700e49a' 未标记为 序列化。

+0

你可以使用JSON作为您的序列化格式? – oleksii

+1

什么是ser?它是'DevExpress.XtraCharts.Series对象吗? – Akansha

+0

不,这是赢的应用程序 – lkmcelik

回答

3

您试图序列化不属于市场的对象,即[Serializable]属性,即它不起作用。

+0

OP的另一个问题(已经在上面发布):你正试图序列化一个UI零件;但是序列化你用来渲染组件的数据不是更好吗(即,假设你对控件进行了一些绑定) – rbm