Funzione WsReadBody (webservices.h)

Questa è una funzione helper che deserializza un valore dal lettore XML del messaggio. Il WS_MESSAGE_STATE deve essere impostato su WS_MESSAGE_STATE_READING. Questa funzione non causa transizioni di stato.

Sintassi

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
);

Parametri

[in] message

Puntatore all'oggetto Message da cui leggere il corpo. Il puntatore deve fare riferimento a un oggetto WS_MESSAGE valido.

[in] bodyDescription

Puntatore all'oggetto che incapsula i metadati che descrivono il mapping del valore a un elemento.

[in] readOption

Determina se è necessario il valore e come allocare il valore. Per altre informazioni, vedere WS_READ_OPTION .

[in, optional] heap

Puntatore all'oggetto Heap in cui leggere l'elemento. Il puntatore deve fare riferimento a un oggetto WS_HEAP valido.

value

L'interpretazione dei dati a cui fa riferimento questo parametro dipende dalla WS_READ_OPTION.

[in] valueSize

L'interpretazione del valore di questo parametro dipende dalla WS_READ_OPTION.

[in, optional] error

Puntatore a un oggetto WS_ERROR in cui devono essere archiviate informazioni aggiuntive sull'errore se la funzione ha esito negativo.

Valore restituito

Questa funzione può restituire uno di questi valori.

Codice restituito Descrizione
WS_E_INVALID_FORMAT
I dati di input non erano nel formato previsto o non hanno il valore previsto.
E_OUTOFMEMORY
Memoria insufficiente.
E_INVALIDARG
Uno o più argomenti non sono validi.
Altri errori
Questa funzione può restituire altri errori non elencati sopra.

Commenti

Queste funzioni supportano gli scenari seguenti, in base al contenuto della WS_ELEMENT_DESCRIPTION fornita:

  • Lettura di un singolo elemento. In questo caso, i campi elementLocalName e elementNs del WS_ELEMENT_DESCRIPTION devono essere impostati sul nome locale e sullo spazio dei nomi dell'elemento da leggere e il tipo e la descrizione del tipo rappresenta il tipo del valore deserializzato. Se si usa WS_FAULT_TYPE o WS_ENDPOINT_ADDRESS_TYPE non è necessario specificare il nome locale, lo spazio dei nomi o la descrizione del tipo (in base alla versione busta/indirizzamento del messaggio).
  • Lettura di più elementi come singolo valore. In questo caso, i campi elementLocalName e elementNs del WS_ELEMENT_DESCRIPTIONdevono essere impostati su NULL e deve essere specificato un WS_STRUCT_TYPE e un WS_STRUCT_DESCRIPTION. In questo caso, ogni campo del valore della struttura deserializzato deve corrispondere agli elementi da leggere all'interno del corpo.
  • Lettura di più elementi come più valori. La lettura di più valori distinti può essere eseguita semplicemente chiamando la funzione più volte.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione webservices.h
Libreria WebServices.lib
DLL WebServices.dll