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; } }
阅读全文
0 0
- SerializeHelper
- Java中HashMap底层实现原理(JDK1.8)源码分析
- memcached入门之存储命令
- max sum
- BWT算法在生物信息学中的应用(一)-算法的基本原理
- 关于laravel发送ajax请求带headers头时(防止csrf),报错Warning: Cannot modify header information
- SerializeHelper
- LeetCode刷题(42)--Subsets
- C#继承(五)——is和as运算符
- 自考结束总结
- 输入一个数求其a+aa+aaa+aaaa+aaaaa......前n项的和
- 51nod 1487
- ES6参数收集与数组展开
- WDK10驱动添加目标计算机的配置详情
- 基于cortex-a9的人脸检测项目