共用方式為


HOW TO:區塊序列化資料

在 Web 服務訊息中發送大型資料集時發生的兩項問題為:

  1. 由於序列化引擎緩衝而產生的大型工作集 (記憶體)。

  2. 由於 Base64 編碼後暴增 33%,因此過度消耗頻寬。

若要解決這些問題,請實作 IXmlSerializable 介面以控制序列化與還原序列化。具體地說,實作 WriteXmlReadXml 方法將資料區分成區塊。

實作伺服器端區分區塊的功能

  1. 在伺服器機器上,Web 方法必須關閉 ASP.NET 緩衝並傳回實作 IXmlSerializable 的型別。

  2. 實作 IXmlSerializable 的型別會將 WriteXml 方法中的資料區分區塊。

實作用戶端處理

  1. 變更用戶端 Proxy 上的 Web 方法以傳回實作 IXmlSerializable 的型別。您可使用 SchemaImporterExtension 自動作業,不過在此不討論。

  2. 實作 ReadXml 方法讀取區分成區塊的資料流並將位元組寫入磁碟。此實作也引發圖形控制項可使用的進度事件,例如進度列。

範例

下列程式碼範例顯示關閉 ASP.NET 緩衝之用戶端上的 Web 方法。它也顯示用戶端 IXmlSerializable 介面的實作,將 WriteXml 方法中的資料區分區塊。

編譯程式碼

另請參閱

概念

自訂序列化

建置日期:2010-03-10