window phone 对象序列化
来源:互联网 发布:vue 数据实时更新 编辑:程序博客网 时间:2024/06/05 23:47
【WPhone】对象序列化
在WP7中,经常需要使用到保存数据,对对象的保存可以通过序列化到流,然后保存到文件中
常用的有三种序列化方式:xml,Json,DataContract
下面介绍着三种序列化的使用
首先,定义一个序列化类Person
public class Person { public string Name { get; set; } public int Age { get; set; } }
1、使用XmlSerializer序列化
需要引用 System.Xml.Serialization 库
Person person = new Person() { Name = "Bomo", Age = 20 }; //xml序列化开始 MemoryStream ms = new MemoryStream(); XmlSerializer xml = new XmlSerializer(typeof(Person)); xml.Serialize(ms, person);//xml序列化的关键代码 byte[] arr = ms.ToArray(); ms.Close(); string xmlString = Encoding.UTF8.GetString(arr,0,arr.Length); MessageBox.Show(xmlString.Length.ToString()); //xml反序列化 MemoryStream ms2 = new MemoryStream(Encoding.UTF8.GetBytes(xmlString)); XmlSerializer xml2 = new XmlSerializer(typeof(Person)); Person pTest = xml.Deserialize(ms2) as Person;//xml反序列化的关键代码 ms2.Close();
2、使用Json
需要引用 System.ServiceModel.Web 库
把对象序列化到流中,然后转换为json字符串
反序列化时,先把字符串读取到流中,然后进行反序列化
Person person = new Person() { Name = "Bomo", Age = 20 }; // 序列化 string jsonString; using (var ms = new MemoryStream()) { new DataContractJsonSerializer(p1.GetType()).WriteObject(ms, person); jsonString = Encoding.UTF8.GetString(ms.ToArray(), 0, (int)ms.Length); MessageBox.Show(jsonString.Length.ToString()); } // 反序列化 using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) { Person desp = (Person)new DataContractJsonSerializer(typeof(Person)).ReadObject(ms); }
3、使用DataContract序列化
需要引用 System.Runtime.Serialization 库,步骤与Json类似
Person p1 = new Person() { Name = "Bomo", Age = 28 }; //DataContract序列化 MemoryStream ms = new MemoryStream(); DataContractSerializer ser = new DataContractSerializer(typeof(Person)); ser.WriteObject(ms, p1); byte[] array = ms.ToArray(); ms.Close(); string _serializeString = Encoding.UTF8.GetString(array, 0, array.Length); MessageBox.Show(_serializeString.Length.ToString()); //反序列化 DataContractSerializer ser2 = new DataContractSerializer(typeof(Person)); MemoryStream ms2 = new MemoryStream(Encoding.UTF8.GetBytes(_serializeString)); Person p2 = ser2.ReadObject(ms2) as Person;
以上三种方法,Xml序列化的字符串最大,速度最慢,Json最快,体积最小
推荐使用Json来序列化对象
通俗易懂,转自:http://www.cnblogs.com/bomo/archive/2013/01/05/2845207.html
- window phone 对象序列化
- Windows Phone 7 序列化Serialization: XmlSerializer
- Windows Phone 7 序列化Serialization: XmlSerializer
- window phone 官方资料
- window phone 学习地址
- window phone 提示退出
- Window phone 自定义资源
- Window Phone 系列学习
- Java对象序列化
- 对象序列化
- Java对象序列化
- 对象序列化笔记
- 对象的序列化
- 对象序列化
- 对象序列化
- Java对象序列化
- Java对象序列化
- java对象序列化
- Ubuntu下选择默认编辑器
- 视频会议系统bigbluebutton简介
- 三极管 NPN型和PNP型的区别
- C++愤恨者札记10——bind2nd示例
- ARP协议学习笔记
- window phone 对象序列化
- 解决iPhone3GS降级固件1015错误的方法
- system.img boot.img 等解包 压缩
- MVC学习四:通过FileResult向浏览器发送文件
- Tomcat下试用war发布项目
- flask下,实现简单博客3
- 23个GOF23设计模式的定义
- PHP中this,self,parent的区别
- MyEclipse破解方法总结