日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【WP7】对象序列化

發布時間:2025/7/14 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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】对象序列化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。