现在的位置: 首页 > 综合 > 正文

C#中对象的序列化与反序列化

2013年05月04日 ⁄ 综合 ⁄ 共 1207字 ⁄ 字号 评论关闭

C#中对象的序列化与反序列化,是一项很常用的技术,对于对象的保存,传输等十分有用。

这里有两个很实用的序列化与反序列化的方法,是我从网友里的得到的,介绍给大家。

以下是要用到两个方法:
        /// 

 
        ///  序列化为二进制字节数组 
        /// 

 
        ///  要序列化的对象  
        ///  字节数组  
        public byte[] SerializeBinary(object  request)   
        { 
            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter serializer = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); 
            System.IO.MemoryStream  memStream  =  new  System.IO.MemoryStream(); 
            serializer.Serialize(memStream, request); 
            return  memStream.GetBuffer(); 
        }
        /// 

 
        ///  从二进制数组反序列化得到对象 
        /// 

 
        ///  字节数组  
        ///  得到的对象  
        public object DeserializeBinary(byte[] buf)
        {
            System.IO.MemoryStream memStream = new MemoryStream(buf);
            memStream.Position = 0;
            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter deserializer =
                new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
            object newobj = deserializer.Deserialize(memStream);
            memStream.Close();
            return newobj;
        } 

调用的时候,以字体对象为例:
序列化:
byte[] FontByte = SerializeBinary(new Font("宋体", 8));
反序列化:
Font FontItem = (Font)DeserializeBinary(FontByte);

抱歉!评论已关闭.