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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

WCF 第六章 序列化和编码之DataContractJsonSerializer

發布時間:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WCF 第六章 序列化和编码之DataContractJsonSerializer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DataContractJsonSerializer支持使用以JavaScript 對象標記作為序列化格式并添加到.NET 3.5 Framework 中。如果從一個使用JavaScript 的網絡應用調用服務序列化會工作的很好,特別是ASP.NET AJAX 和Silverlight 網絡應用。當使用WebScriptEnablingBehavior行為時會使用DataContractJsonSerializer。對應的,如果WebHttpBehavior行為配置成使用JSON編碼也可以使用DataContractJsonSerializer。這些終結點行為指導WCF支持REST/POX 類型服務。你可以查看第十三章"可編程站點"來獲得關于屬性的信息。現在我們將查看如何直接使用DataContractJsonSerializer并與先前提到的其他序列化結構進行比較。列表6.12顯示了如何使用DataContractJsonSerializer序列化一個Employee實例。

列表6.12 使用DataContractJsonSerializer的序列化

using System.Runtime.Serialization.Json;namespace EssentialWCF {class Program{static void Main(string[] args){Employee e = new Employee(101, "Daniel", "Dong");FileStream writer = new FileStream("sample.xml", FileMode.Create);DataContractJsonSerilizer ser = new DataContractJsonSerilizer(typeof(Employee));ser.Serialize(writer, e);writer.Close();}} }

? DataContractJsonSerializer 也遵循DataContractSerializer序列化器的規則除了輸出格式是JSON而不是XML。Employee 類的DataContractJsonSerializer序列化輸出結果在列表6.13中顯示。這個例子中的輸出相比使用DataContracSerializer,NetDataContractSerializer或者XmlSerializer更加簡單和緊湊, 相比之前的XML例子這個輸出結果可讀性更好。

列表6.13 使用DataContractJsonSerializer序列化Employee類的結果

{"Employee":101, "FirstName":"Daniel", "LastName":"Dong"}

?

選擇一個序列化器

決定是否使用DataContractSerializer,NetDataContractSerializer, XmlSerializer或者DataContractJsonSerializer通常是一個簡單的決定。DataContractSerializer應該作為默認的序列化基礎方法因為它是WCF的初始序列化結構。然而,如果你需要支持已有的類型或者自定義序列化而且它們不被DataContractSerializer支持的話,你可能想要使用XmlSerializer.盡管NetDataContractSerializer很有趣,但是不通過寫代碼的方式沒有現成的方法對它提供支持。盡管使用NetDataContractSerializer有一些好處,它的使用也是不鼓勵的因為它需要客戶端和服務端共享類型。最后,DataContractJsonSerializer是服務被AJAX應用調用時最常用的網絡場景中最常用的。如果你計劃開發ASP.NET AJAX 或者使用基于銀光(Silverlight)技術的富因特網應用(RIAs),你最可能使用DataContractJsonSerializer來支持JSON序列化。盡管JSON序列化在使用JavaScript的網絡應用中廣泛使用,但由于它的廣泛接受程度所以它的使用已擴展到網絡應用之外。在這些情況中,選擇使用JSON變成一個個人喜好問題。最后,WCF提供了很多允許序列化被完全取代的擴展點。

總結

以上是生活随笔為你收集整理的WCF 第六章 序列化和编码之DataContractJsonSerializer的全部內容,希望文章能夠幫你解決所遇到的問題。

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