欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【WP7】对象序列化

发布时间:2025/7/14 编程问答 26 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【WP7】对象序列化 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

  在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, p1);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来序列化对象

转载于:https://www.cnblogs.com/bomo/archive/2013/01/05/2845207.html

总结

以上是生活随笔为你收集整理的【WP7】对象序列化的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。