WsGetFaultErrorDetail-Funktion (webservices.h)

Lesen Sie die Fehlerdetails, die in einem WS_ERROR-Objekt gespeichert sind.

Syntax

HRESULT WsGetFaultErrorDetail(
  [in]           WS_ERROR                          *error,
  [in]           const WS_FAULT_DETAIL_DESCRIPTION *faultDetailDescription,
  [in]           WS_READ_OPTION                    readOption,
  [in, optional] WS_HEAP                           *heap,
                 void                              *value,
  [in]           ULONG                             valueSize
);

Parameter

[in] error

Das Fehlerobjekt, das die Fehlerinformationen enthält.

[in] faultDetailDescription

Ein Zeiger auf eine Beschreibung des Fehlerdetailelements.

Der Aktionswert der Fehlerdetailbeschreibung wird als Filterwert verwendet, um mit der Aktion des Fehlers abzugleichen. Wenn beide Aktionszeichenfolgen angegeben sind (der Aktionswert der Fehlerdetailbeschreibung ist nicht NULL und der Aktionswert WS_FAULT_ERROR_PROPERTY_ACTION in der WS_ERROR eine Länge größer als 0) hat, werden die Aktionszeichenfolgen verglichen, um eine Übereinstimmung zu ermitteln. Wenn eine Übereinstimmung vorhanden ist, versucht die Funktion dann, das Detailelement deserialisieren.

Die Elementbeschreibung der Fehlerdetailbeschreibung wird verwendet, um das Format des Elements im Fehlerdetail zu beschreiben.

[in] readOption

Gibt an, ob das Element erforderlich ist und wie der Wert zugeordnet werden soll. Weitere Informationen finden Sie unter WS_READ_OPTION .

[in, optional] heap

Der Heap, in dem die deserialisierten Werte gespeichert werden sollen.

value

Die Interpretation dieses Parameters hängt vom WS_READ_OPTION ab.

[in] valueSize

Die Interpretation dieses Parameters hängt vom WS_READ_OPTION ab.

Rückgabewert

Diese Funktion kann einen dieser Werte zurückgeben.

Rückgabecode Beschreibung
WS_E_INVALID_FORMAT
Die Eingabedaten waren nicht im erwarteten Format oder hatten nicht den erwarteten Wert.
E_OUTOFMEMORY
Der Arbeitsspeicher ist nicht mehr vorhanden.
WS_E_QUOTA_EXCEEDED
Das Größenkontingent des Heaps wurde überschritten.
E_INVALIDARG
Mindestens ein Argument ist ungültig.

Hinweise

Diese API deserialisiert den Wert aus dem Detailfeld des WS_FAULT , das im WS_ERROR-Objekt gespeichert ist.

Diese Funktionen unterstützen die folgenden Szenarien basierend auf dem Inhalt der WS_ELEMENT_DESCRIPTION in der angegebenen WS_FAULT_DETAIL_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 deserialisierten Werts dar.

    Da von einem Dienst verschiedene Fehler mit unterschiedlichen Detailformaten erwartet werden können, kann diese Funktion nacheinander aufgerufen werden, um jeden Detailtyp zu lesen. In diesem Fall kann der WS_READ_OPTIONAL_POINTER Wert angegeben werden, der einen NULL-Zeiger zurückgibt, wenn der Elementname im Fehlerdetail nicht mit dem erwarteten Wert übereinstimmt.

  • 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 sollte ein WS_STRUCT_TYPE und WS_STRUCT_DESCRIPTION angegeben werden. Jedes Feld deserialisierten Strukturwerts sollte Elementen entsprechen, die innerhalb des Textkörpers gelesen werden sollen. Der readOption-Parameter muss WS_READ_REQUIRED_VALUE oder WS_READ_REQUIRED_POINTER sein.

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