【WP7】对象序列化
生活随笔
收集整理的這篇文章主要介紹了
【WP7】对象序列化
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在WP7中,經(jīng)常需要使用到保存數(shù)據(jù),對(duì)對(duì)象的保存可以通過(guò)序列化到流,然后保存到文件中
常用的有三種序列化方式:xml,Json,DataContract
下面介紹著三種序列化的使用
首先,定義一個(gè)序列化類(lèi)Person
public class Person{public string Name { get; set; }public int Age { get; set; }}1、使用XmlSerializer序列化
需要引用?System.Xml.Serialization 庫(kù)
Person person = new Person() { Name = "Bomo", Age = 20 };//xml序列化開(kāi)始MemoryStream ms = new MemoryStream();XmlSerializer xml = new XmlSerializer(typeof(Person));xml.Serialize(ms, person);//xml序列化的關(guān)鍵代碼 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反序列化的關(guān)鍵代碼ms2.Close();?
2、使用Json
需要引用 System.ServiceModel.Web?庫(kù)
把對(duì)象序列化到流中,然后轉(zhuǎn)換為json字符串
反序列化時(shí),先把字符串讀取到流中,然后進(jìn)行反序列化
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?庫(kù),步驟與Json類(lèi)似
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來(lái)序列化對(duì)象
轉(zhuǎn)載于:https://www.cnblogs.com/bomo/archive/2013/01/05/2845207.html
總結(jié)
以上是生活随笔為你收集整理的【WP7】对象序列化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ANT简明教程
- 下一篇: hibernate增删改查的标准范例