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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

WCF 第六章 序列化与编码 编码选择

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

文本編碼與二進制編碼

在WCF之前,你有很多創建分布式應用程序的選擇。其中的兩個選擇是.NET Remoting和ASP.NET 網絡服務。.NET Remoting 很適合.NET 應用程序間的通信因為它使用二進制編碼傳輸數據。這比ASP.NET 網絡服務提供更好的性能,ASP.NET 網絡服務在交互中使用文本編碼。由于文本編碼允許跨平臺交互所以它在ASP.NET 網絡服務中是被廣泛接受的。WCF將編碼架構抽象出來并允許同時使用兩種編碼格式的綁定存在。這使得WCF可以同時取代.NET Remoting和ASP.NET 網絡服務。

? 對我們來說不會直接操作編碼。相反,它由用來暴露一個服務的綁定確定。第四章”綁定”高亮顯示了.NET應用程序間使用的綁定和那些用來交互的綁定。netTcpBinding綁定,在.NET應用程序間使用,它使用binaryMessageEncoding編碼器。binaryMessageEncoding編碼器提供了最佳的性能,但是它不支持交互。對應的,諸如wsHttpBinding綁定使用textMessageEncoding編碼器,這個編碼器使用WS-* 協議提供交互能力。列表6.34顯示了一個使用textMessageEncoding編碼器的自定義綁定。

列表6.34 使用textMessageEncoding的自定義綁定

<?xml version="1.0" encoding="utf-8" ?>

? 列表6.35 顯示了一個使用binaryMessageEncoding編碼器的自定義綁定配置

列表6.35 使用binaryMessageEncoding的自定義綁定

<?xml version="1.0" encoding="utf-8" ?>

使用MTOM編碼器發送二進制數據

textMessageEncoding編碼器將消息轉換成基于文本的XML。這對交互是很好的,但是在傳輸大塊二進制數據時非常低效。MTOM用來在交互場景中將大量二進制數據作為原始字節發送。正如先前所提到的那樣,MTOM全稱是消息傳輸最佳架構。這是將二進制數據作為SOAP消息的消息體來優化二進制數據發送的標準。這意味著二進制數據可以使用一個SOAP消息傳輸而不用加上BASE64的文本編碼。為了從MTOM的使用中受益,一個服務必須包含一個類型數組或者操作契約中的一個流對象。

? WCF通過mtomMessageEncoding編碼器提供對MTOM的支持。對mtomMessageEncoding編碼器的使用一般通過綁定確認。列表6.36 顯示了如何使用wsHttpBinding綁定確認MTOM編碼器。

列表6.36 使用mtomMessageEncoding的wsHttpBinding

開始了解WebMessageEncoder

WebMessageEncoder在.NET Framework 3.5時加入到WCF中的,它提供對JSON和POX編碼的支持。這個編碼器不提供一個特殊類型編碼,但是集合了一系列的在當前網絡上使用的編碼類型。WebMessageEncoder編碼器通過使用WebHttpBehavior或者WebScriptEnablingBehavior終結點行為開啟。

? WebHttpBehavior終結點行為指導WebMessageEncoder編碼器使用TextMessageEncoder編碼器。這在內部通過TextMessageEncoder編碼器并設置消息版本為MessageVersion.Node來實現的。這指導TextMessageEncoder編碼器在XML中不包含任何SOAP或者WS-Addressing信息。WebMessageEncoder編碼器支持在XML或者JSON中的請求和回復消息。WebHttpBehavior終結點行為的默認行為時講請求和回復消息格式設置成WebMessageFormat.Xml.這可以通過在代碼中通過設置請求和/或回復消息格式并在WebMessageFormat.Xml或者WebMessageFormat.Json上設置[WebGet]屬性實現。

? 盡管請求和回復格式可以獨立確定,它們一般設置成同樣的值。WebScriptEnablingBehavior終結點行為通過將默認請求和回復格式設置成WebMessageFormat.Json來實現的。這也指導WebMessageEncoder編碼器使用JsonMessageEncoder編碼器來對消息編碼。WebScriptEnablingBehavior用于從JavaScript調用服務的AJAX使能的網絡應用。也開啟對ASP.NET AJAX 客戶端代理的支持。

? 參考第十三章來獲取更多關于WebHttpBehavior行為,WebScriptEnablingBehavior行為和[WebGet]屬性的信息。

轉載于:https://www.cnblogs.com/danielWise/archive/2010/12/22/1914095.html

總結

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

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