共用方式為


序列化

串行化是在 C 數據結構中寫入值的程式(結構、陣列和基本值),做為 XML 元素。 還原串行化是反向進程。

串行化是在 C 數據結構(結構、數位和基本值)中寫入值作為 XML 元素的程式。 還原串行化是反向進程。

這兩個進程都依賴 C 數據結構和 XML 之間的對應描述。

圖表,顯示串行化和還原串行化如何依賴 C 數據結構與 XML 之間的對應描述。

為了串行化值,應用程式會呼叫 WsWriteElementWsWriteAttributeWsWriteType

若要還原串行化值,應用程式會呼叫 WsReadElementWsReadAttributeWsReadType

安全

XML 讀取器 用於還原串行化程式。 請參閱 XML 讀取器中 XML 相關安全性資訊的安全性一節。

還原串行化程式會繼續還原串行化數據,直到它完成讀取正在還原串行化的項目為止。 還原串行化進程在遇到不符合還原串行化數據描述的任何 XML 檔時失敗。 此時使用的 XML 讀取器會變成無效,並傳回錯誤。

根據預設,還原串行化是嚴格的。 導致還原串行化失敗的某些條件,包括但不限於:

  • 遺漏預期的元素
  • 非預期的專案欄位會出現在必要元素之間
  • 必要欄位之後的額外元素內容,除非 WS_STRUCT_IGNORE_TRAILING_ELEMENT_CONTENT
  • 除非指定 WS_STRUCT_IGNORE_UNHANDLED_ATTRIBUTES 旗標,否則非預期的屬性
  • 超出指定範圍的未預期數據類型值
  • 重複專案的計數超出指定的範圍

串行化大量數據可能會導致過多的記憶體配置,並可能導致阻斷服務攻擊。 還原串行化數據的用戶必須指定堆積物件來配置數據,而且使用者可以使用堆積配置限制來防止記憶體配置攻擊。

數據類型的範圍支援,包括字串的長度上限、陣列中的元素計數上限等,可讓使用者控制不同數據類型的大小上限。 用戶可以指定數據描述或架構中的範圍,以限制不同數據的大小上限。

線格式支援包含內嵌零的字串值(text、binary、MTOM)。 以內嵌零還原串行化字串時,用戶應該使用計數位符串 (WS_STRING),因此零不會混淆字串長度的計算。 如果包含內嵌零的字串值還原串行化為預期以零終止字元串的欄位,則會傳回錯誤,且還原串行化失敗。 如果使用 wsutil 來產生數據描述,則應該使用 /string:WS_STRING 選項,如果預期具有內嵌零的字串。

下列回呼會與串行化搭配使用:

下列列舉會與串行化搭配使用:

下列函式會與串行化搭配使用:

下列結構會與串行化搭配使用: