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 对象的指针,如果函数失败,应存储有关错误的其他信息。
返回值
此函数可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
输入数据的格式不是预期的,或者没有预期的值。 |
|
内存不足。 |
|
一个或多个参数无效。 |
|
此函数可能会返回上面未列出的其他错误。 |
注解
此函数根据提供的 WS_ELEMENT_DESCRIPTION 的内容支持以下方案:
- 读取单个元素。 在这种情况下, WS_ELEMENT_DESCRIPTION 的 elementLocalName 和 elementNs 字段应设置为要读取的元素的本地名称和命名空间,类型和类型说明表示要反序列化的值的类型。 如果使用 WS_FAULT_TYPE 或 WS_ENDPOINT_ADDRESS_TYPE 则无需指定本地名称、命名空间或类型说明, (它们会根据邮件) 的信封/寻址版本适当默认。
- 将多个元素作为单个值读取。 在这种情况下,应将 WS_ELEMENT_DESCRIPTION 的 elementLocalName 和 elementNs 字段设置为 NULL,并指定 WS_STRUCT_TYPE 和 WS_STRUCT_DESCRIPTION 。 在这种情况下,要反序列化的结构值的每个字段都应对应于要在正文中读取的元素 () 。
- 将多个元素作为多个值读取。 只需多次调用函数即可读取多个非重复值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | webservices.h |
Library | WebServices.lib |
DLL | WebServices.dll |