WsReadBody 函式 (webservices.h)

這是協助程式函式,可從 XML 讀取器還原串行化訊息的值。 WS_MESSAGE_STATE必須設定為 WS_MESSAGE_STATE_READING。 此函式不會造成任何狀態轉換。

語法

HRESULT WsReadBody(
  [in]           WS_MESSAGE                   *message,
  [in]           const WS_ELEMENT_DESCRIPTION *bodyDescription,
  [in]           WS_READ_OPTION               readOption,
  [in, optional] WS_HEAP                      *heap,
                 void                         *value,
  [in]           ULONG                        valueSize,
  [in, optional] WS_ERROR                     *error
);

參數

[in] message

要從中讀取本文之 Message 物件的指標。 指標必須參考有效的 WS_MESSAGE 物件。

[in] bodyDescription

物件的指標,封裝描述值與專案之對應的元數據。

[in] readOption

判斷是否需要值,以及如何配置值。 如需詳細資訊 ,請參閱WS_READ_OPTION

[in, optional] heap

要讀取元素之 堆積 物件的指標。 指標必須參考有效的 WS_HEAP 物件。

value

此參數所參考數據的解譯取決於 WS_READ_OPTION

[in] valueSize

此參數值的解譯取決於 WS_READ_OPTION

[in, optional] error

WS_ERROR 物件的指標,如果函式失敗,應該儲存錯誤的其他資訊。

傳回值

此函式可以傳回其中一個值。

傳回碼 Description
WS_E_INVALID_FORMAT
輸入數據的格式不正確,或沒有預期的值。
E_OUTOFMEMORY
記憶體不足。
E_INVALIDARG
一或多個引數無效。
其他錯誤
此函式可能會傳回上述未列出的其他錯誤。

備註

根據所提供的 WS_ELEMENT_DESCRIPTION 內容,此函式支援下列案例:

  • 讀取單一元素。 在此情況下, WS_ELEMENT_DESCRIPTION 的 elementLocalName 和 elementNs 欄位應該設定為要讀取之專案的本機名稱和命名空間,而類型和類型描述代表要還原串行化之值的型別。 如果使用 WS_FAULT_TYPEWS_ENDPOINT_ADDRESS_TYPE 則不需要指定本機名稱、命名空間或類型描述, (它們會根據訊息) 的信封/尋址版本適當地預設。
  • 將多個元素讀取為單一值。 在此情況下, 應該將WS_ELEMENT_DESCRIPTION 的 elementLocalName 和 elementNs 欄位設定為 NULL,並指定 WS_STRUCT_TYPEWS_STRUCT_DESCRIPTION 。 在此情況下,要還原串行化之結構值的每個欄位都應該對應至元素 (s) ,以在本文內讀取。
  • 將多個元素讀取為多個值。 只要多次呼叫函式即可完成讀取多個相異值。

規格需求

需求
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 webservices.h
程式庫 WebServices.lib
Dll WebServices.dll