首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

《WCF 技術內幕》譯文 9:訊息編碼器選擇指南 — Text、Binary、MTOM 深度比較

     編輯:關於.NET

WCF 提供三種編碼器,選擇取決於互操作需求、資料類型與效能考量。本文深度剖析三者機制與適用場景。

XML Infoset:編碼抽象層

XML 1.0 定義語法;XML Infoset 定義資訊項目關係,不綁定具體語法,允許同一邏輯訊息採用不同編碼(文字、二進位、MTOM)而不修改程式。SOAP 1.2 建構於 Infoset 之上,WCF 同時支援 SOAP 1.1/1.2。

三大編碼器特性

1. 文字編碼器 — 最大互操作性

輸出 UTF-8 XML,所有懂 Unicode 系統皆可處理。二進位資料以 xs:base64Binary 嵌入(體積增 33%)。
適用:非 WCF 系統整合、純文字訊息、小型二進位資料。

2. 二進位編碼器 — 最高效能

序列化 Infoset 為緊湊二進位格式,僅限 WCF-to-WCF。訊息體積最小、序列化最快。未來可能有標準二進位編碼取代。

3. MTOM 編碼器 — 大型二進位資料最佳平衡

依 MTOM/XOP/MIME 標準,將大型二進位資料以原始位元組流置於 MIME 多部份訊息獨立區塊,XML 部份以 <xop:Include href="cid:..."/> 參照。
關鍵創新:同時保留內聯 base64 複本供 XML 數位簽名/加密使用,驗證完成再序列化為多部份格式傳輸。WCF 執行階段自動依二進位大小決定內聯或外部化。

編碼器選擇決策表

訊息類型 / 互操作對象BinaryTextMTOM
純文字,僅 WCF123
純文字,現代非 WCFN/A12
純文字,舊版非 WCFN/A1N/A
大型二進位,僅 WCF132
大型二進位,現代非 WCFN/A21
大型二進位,舊版非 WCFN/A1N/A
小型二進位,僅 WCF123
小型二進位,現代非 WCFN/A12
小型二進位,舊版非 WCFN/A1N/A

1=最佳、2=次佳、3=可用、N/A=不適用。
關鍵結論:WCF 允許單一服務同時暴露多端點支援不同編碼,兼顧 WCF 內部高效通訊與異構平台互操作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved