SerializeHelper

来源:互联网 发布:手机淘宝旺信登录失败 编辑:程序博客网 时间:2024/06/08 11:55

使用该SerializeHelper 工具类,类前必须增加 [Serializable]

如:

  [Serializable]    public class Course    {        public int CourseId { get; set; }        public string CourseName { get; set; }    }

 

    public static class SerializeHelper    {        /// <summary>        /// 使用UTF8编码将byte数组转成字符串        /// </summary>        /// <param name="data"></param>        /// <returns></returns>        public static string ConvertToString(byte[] data)        {            return Encoding.UTF8.GetString(data, 0, data.Length);        }        /// <summary>        /// 使用指定字符编码将byte数组转成字符串        /// </summary>        /// <param name="data"></param>        /// <param name="encoding"></param>        /// <returns></returns>        public static string ConvertToString(byte[] data, Encoding encoding)        {            return encoding.GetString(data, 0, data.Length);        }        /// <summary>        /// 使用UTF8编码将字符串转成byte数组        /// </summary>        /// <param name="str"></param>        /// <returns></returns>        public static byte[] ConvertToByte(string str)        {            return Encoding.UTF8.GetBytes(str);        }        /// <summary>        /// 使用指定字符编码将字符串转成byte数组        /// </summary>        /// <param name="str"></param>        /// <param name="encoding"></param>        /// <returns></returns>        public static byte[] ConvertToByte(string str, Encoding encoding)        {            return encoding.GetBytes(str);        }        /// <summary>        /// 将对象序列化为二进制数据         /// </summary>        /// <param name="obj"></param>        /// <returns></returns>        public static byte[] SerializeToBinary(object obj)        {            MemoryStream stream = new MemoryStream();            BinaryFormatter bf = new BinaryFormatter();            bf.Serialize(stream, obj);            byte[] data = stream.ToArray();            stream.Close();            return data;        }        /// <summary>        /// 将对象序列化为XML数据        /// </summary>        /// <param name="obj"></param>        /// <returns></returns>        public static byte[] SerializeToXml(object obj)        {            MemoryStream stream = new MemoryStream();            XmlSerializer xs = new XmlSerializer(obj.GetType());            xs.Serialize(stream, obj);            byte[] data = stream.ToArray();            stream.Close();            return data;        }        /// <summary>        /// 将二进制数据反序列化        /// </summary>        /// <param name="data"></param>        /// <returns></returns>        public static object DeserializeWithBinary(byte[] data)        {            MemoryStream stream = new MemoryStream();            stream.Write(data, 0, data.Length);            stream.Position = 0;            BinaryFormatter bf = new BinaryFormatter();            object obj = bf.Deserialize(stream);            stream.Close();            return obj;        }        /// <summary>        /// 将二进制数据反序列化为指定类型对象        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="data"></param>        /// <returns></returns>        public static T DeserializeWithBinary<T>(byte[] data)        {            return (T)DeserializeWithBinary(data);        }        /// <summary>        /// 将XML数据反序列化为指定类型对象        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="data"></param>        /// <returns></returns>        public static T DeserializeWithXml<T>(byte[] data)        {            MemoryStream stream = new MemoryStream();            stream.Write(data, 0, data.Length);            stream.Position = 0;            XmlSerializer xs = new XmlSerializer(typeof(T));            object obj = xs.Deserialize(stream);            stream.Close();            return (T)obj;        }    }

原创粉丝点击