WsReadBody-Funktion (webservices.h)

Dies ist eine Hilfsfunktion, die einen Wert aus dem XML-Reader der Nachricht deserialisiert. Die WS_MESSAGE_STATE muss auf WS_MESSAGE_STATE_READING festgelegt werden. Diese Funktion verursacht keine Zustandsübergänge.

Syntax

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

Parameter

[in] message

Ein Zeiger auf das Message-Objekt , aus dem der Text gelesen werden soll. Der Zeiger muss auf ein gültiges WS_MESSAGE-Objekt verweisen.

[in] bodyDescription

Ein Zeiger auf das -Objekt, das die Metadaten kapselt, die die Zuordnung des Werts zu einem Element beschreibt.

[in] readOption

Bestimmt, ob der Wert erforderlich ist und wie der Wert zugeordnet werden soll. Weitere Informationen finden Sie unter WS_READ_OPTION .

[in, optional] heap

Ein Zeiger auf das Heap-Objekt , in das das Element gelesen werden soll. Der Zeiger muss auf ein gültiges WS_HEAP-Objekt verweisen.

value

Die Interpretation der Daten, auf die durch diesen Parameter verwiesen wird, hängt vom WS_READ_OPTION ab.

[in] valueSize

Die Interpretation des Werts dieses Parameters hängt vom WS_READ_OPTION ab.

[in, optional] error

Ein Zeiger auf ein WS_ERROR-Objekt , in dem zusätzliche Informationen zum Fehler gespeichert werden sollen, wenn die Funktion fehlschlägt.

Rückgabewert

Diese Funktion kann einen dieser Werte zurückgeben.

Rückgabecode Beschreibung
WS_E_INVALID_FORMAT
Die Eingabedaten hatten nicht das erwartete Format oder hatten nicht den erwarteten Wert.
E_OUTOFMEMORY
Der Arbeitsspeicher ist nicht mehr vorhanden.
E_INVALIDARG
Mindestens ein Argument ist ungültig.
Andere Fehler
Diese Funktion gibt möglicherweise andere Fehler zurück, die oben nicht aufgeführt sind.

Hinweise

Diese Funktionen unterstützen die folgenden Szenarien basierend auf dem Inhalt der bereitgestellten WS_ELEMENT_DESCRIPTION :

  • Lesen eines einzelnen Elements. In diesem Fall sollten die Felder elementLocalName und elementNs des WS_ELEMENT_DESCRIPTION auf den lokalen Namen und Namespace des zu lesenden Elements festgelegt werden, und die Typ- und Typbeschreibung stellt den Typ des deserialisierten Werts dar. Bei Verwendung von WS_FAULT_TYPE oder WS_ENDPOINT_ADDRESS_TYPE ist es nicht erforderlich, den lokalen Namen, Namespace oder die Typbeschreibung anzugeben (sie basieren standardmäßig entsprechend der Umschlag-/Adressierungsversion der Nachricht).
  • Lesen mehrerer Elemente als einzelner Wert. In diesem Fall sollten die Felder elementLocalName und elementNs des WS_ELEMENT_DESCRIPTION auf NULL festgelegt werden, und es sollten ein WS_STRUCT_TYPE und WS_STRUCT_DESCRIPTION angegeben werden. In diesem Fall sollte jedes Feld des Strukturwerts, der deserialisiert wird, den Elementen entsprechen, die innerhalb des Texts gelesen werden sollen.
  • Lesen mehrerer Elemente als mehrere Werte. Das Lesen mehrerer unterschiedlicher Werte kann erreicht werden, indem die Funktion einfach mehrmals aufgerufen wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile webservices.h
Bibliothek WebServices.lib
DLL WebServices.dll