我正在阅读有关 MessageContract 和 MessageHeader 的信息,并试图了解在 MessageHeader 中发送一些信息的用例,而不是将其仅用作函数参数?
问问题
1232 次
2 回答
1
消息契约和消息头是大多数人永远不需要使用的高级概念。它们主要用于互操作性场景中,您需要与需要某种格式的数据(即标头中的某些参数)的第 3 方服务进行通信。
在消息头中传递一些参数的其他可能场景:
- 可以在消息检查器和 WCF 中的其他扩展点中轻松访问标头(因为标头始终被缓冲),因此如果您想使用其中的一些进行一些验证(例如,一些身份验证决定),您可能希望拥有标头中的参数
- 正如@Vasile 所提到的,如果您想要进行流式传输,由于标头始终被缓冲,它们可用于在读取/使用(流式)主体之前向操作传达一些附加信息
于 2011-07-25T21:34:54.593 回答
0
MessageContract 和 MessageHeader 提供比 DataContract 和 DataMember 更低级别的消息控制。如果您使用 webHttpBinding 或 basicHttpBinding,它还提供了一种创建 SOAP 标头的方法。如果您在 WCF 服务中使用流式传输功能,那么除了流本身之外,使用 MessageHeader 是传递数据的唯一方法。您可以在此MSDN 文章
中阅读有关消息协定的更多信息
于 2011-07-25T20:29:28.117 回答