当前位置:编程学习 > C#/ASP.NET >>

.net序列化与反序列化问题!帮帮忙困扰很久了!

我在wince上用CompactFormatter序列化一个对象,写入到网络工作流当中,传输到服务端(pc),接受到数据后用CompactFormatter再将将byte[]反序列化,但是总是不成功(数据已取到),类中的数据取不到提示未实例化异常!不知道问题出在哪里,求各位帮帮忙……
这是客户端(pc)的反序列化代码
 /// <summary>
        /// 将byte[]反序列化
        /// </summary>
        /// <param name="ba">要被反序列化的对象</param>
        /// <returns>序列化后的byte[]</returns>
        public static object ByteAToObject(byte[] ba)
        {
            MemoryStream ms = null;
            object obj = null;
            try
            {
                //   反序列化   
                ms = new MemoryStream(ba);
                CompactFormatter.CompactFormatter ser = new CompactFormatter.CompactFormatter();
                obj = ser.Deserialize(ms);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString(), "错误");
            }
            finally
            {
                ms.Close();
            }
            return obj;
        }

这是客户端(wince5.0)的序列化代码:
/// <summary>
        /// 将结构对象序列化
        /// </summary>
        /// <param name="obj">要转换成Byte[]的对象</param>
        /// <returns>转换后的Byte[]</returns>
        public static byte[] ObjectToByteA(IDCARD_READ obj)
        {

            
            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
            {
                try
                {
                    CompactFormatter.CompactFormatter ser = new CompactFormatter.CompactFormatter();
                    ser.Serialize(ms, obj);
                    byte[] buffer = ms.ToArray();
                    return buffer;
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString(), "错误");
                }
                finally
                {
                    ms.Close();
                }
                return null;
            }          
        }   

请各位帮我出出主意,看问题出在哪啊? 先谢过了! --------------------编程问答-------------------- 异常信息要给全
一般序列化的问题都是程序集不一致造成的。.Net CF和普通.Net Framework之间直接序列化和反序列化应该是不行的,用Xml序列化试试吧,或者自己实现对象和字节的转化。 --------------------编程问答-------------------- 在反序列化之前加入代码
ms.Position = 0; --------------------编程问答-------------------- 哪位兄弟,有序列化與反序列化方面的基礎教程啊! --------------------编程问答-------------------- 你去学一下XML文件的读写,这个学好了,序列化与反序列化也就学会了。
补充:.NET技术 ,  .NET Framework
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,