WPF,对象序列化或反序列化为一字符串
来源:互联网 发布:大数据案例分析 ppt 编辑:程序博客网 时间:2024/05/07 17:22
/** * 这段代码在某网站源码的基础上改了一下 * 在VS2008 SP1中测试通过 * */ public class SerializeUtilities { /// <summary> /// 序列化 对象到字符串 /// </summary> /// <param name="obj">泛型对象</param> /// <returns>序列化后的字符串</returns> public static string Serialize<T>(T obj) { try { IFormatter formatter = new BinaryFormatter(); MemoryStream stream = new MemoryStream(); formatter.Serialize(stream, obj); stream.Position = 0; byte[] buffer = new byte[stream.Length]; stream.Read(buffer, 0, buffer.Length); stream.Flush(); stream.Close(); return Convert.ToBase64String(buffer); } catch (Exception ex) { throw new Exception("序列化失败,原因:" + ex.Message); } } /// <summary> /// 反序列化 字符串到对象 /// </summary> /// <param name="obj">泛型对象</param> /// <param name="str">要转换为对象的字符串</param> /// <returns>反序列化出来的对象</returns> public static T Desrialize<T>(string str) { T obj; try { IFormatter formatter = new BinaryFormatter(); byte[] buffer = Convert.FromBase64String(str); MemoryStream stream = new MemoryStream(buffer); obj = (T)formatter.Deserialize(stream); stream.Flush(); stream.Close(); } catch (Exception ex) { throw new Exception("反序列化失败,原因:" + ex.Message); } return obj; } }
下面是测试代码
[Serializable] class MyData { public String str; public HashSet<String> hs; public void Init() { str = "这是一个测试"; hs = new HashSet<String>(); hs.Add("我的测试字符串1"); hs.Add("我的测试字符串2"); } }
/* 测试序列化,反序列化*/ MyData md = new MyData(); md.Init(); //序列化 String str = SerializeUtilities.Serialize<MyData>(md); //反序列化 MyData mdD = SerializeUtilities.Desrialize<MyData>(str) as MyData; Debug.WriteLine("mdD=>"+mdD.str+" hs.size=>"+mdD.hs.Count);
0 0
- WPF,对象序列化或反序列化为一字符串
- 对象序列化反序列化为xml
- 对象序列化成字符串与反序列化为对象
- c#将对象序列化为字符串和将字符串反序列化为对象
- c#将对象序列化为字符串和将字符串反序列化为对象
- Java 序列化对象为字符串 然后反序列化为对象
- 把对象序列化为xml格式和反序列化
- 使用DataContractJsonSerializer类将类型实例序列化为JSON字符串和反序列化为实例对象
- XML字符串反序列化为对象
- 将实体类或者集合序列化为JSON字符串,将JSON字符串反序列化还原为对象
- 序列化对象为xml文件,将xml文件反序列化为对象
- java 使用xom对象数据序列化为xml、反序列化、Preferences相关操作小案例
- c# xml字符串 反序列化为实例对象
- JSON字符串反序列化为MAP对象开发实例
- C#编程:对象序列化为字节数组以及字节数组反序列化为对象
- asp.net xml反序列化为对象(对像序列化为xml)
- java 序列化为String无法反序列化
- Redis– Jedis存储Java对象 - (Java序列化为byte数组方式) Java 序列化和反序列化
- cocos2d 字体相关
- Android Listview相关各种特效
- 机器视觉中常用的数据测试集
- 从给编译好的LAMP环境中的PHP添加Xdebug模块分析动态加载
- linux进程调度方法(SCHED_OTHER,SCHED_FIFO,SCHED_RR)
- WPF,对象序列化或反序列化为一字符串
- 黑客是如何伪装成公共wifi的--家用路由器实现Web认证
- Robotium_获取当前客户端的版本信息
- oracle 创建自动增长列
- top命令
- 我在使用的android开源项目
- Oracle学习.Oracle数据库体系结构&网络结构简述
- jdbc连接数据库的步骤1
- linux建立信任关系简易方法