c# - WCF 何时使用 MessageHeader 而不是在函数参数中传递变量

标签 c# wcf messagecontract

我正在阅读有关 MessageContract 和 MessageHeader 的内容,并试图了解在 MessageHeader 中发送一些信息的用例,而不是将其仅用作函数参数?

最佳答案

消息契约和消息头是一些高级概念,大多数人永远不需要使用它们。它们主要用于互操作性场景,在这种情况下,您需要与需要特定格式数据(即 header 中的某些参数)的第 3 方服务进行通信。

在消息头中传递一些参数的其他可能场景:

  • 可以在消息检查器和 WCF 中的其他扩展点中轻松访问 header (因为 header 始终被缓冲),因此如果您想使用其中一些进行一些验证(例如,一些身份验证决策),您可能需要在 header 中包含参数
  • 正如@Vasile 提到的,如果您想进行流式传输,由于 header 始终被缓冲,因此它们可用于在读取/使用(流式)正文之前向操作传达一些附加信息

关于c# - WCF 何时使用 MessageHeader 而不是在函数参数中传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6821874/

相关文章:

c# - 让 WSHttpBinding 通过 http 代理工作

WCF:MessageContract 处理 OnDeserialized 事件

c# - 将多个命名空间添加到 MessageContract WCF 响应对象 (MessageBodyMember)

wcf - 具有字符串返回值(或参数)的 ASMX WebService 强制在 WCF 客户端中生成消息协定

c# - 基于文化信息的循环周

c# - 从实例获取 Type 时,MethodInfo 始终为 null

c# - 如何将服务器服务连接到 Dynamics Online

iis - 无法访问部署在本地 IIS Web 服务器上的 RESTFul WCF 服务上的 .svc

c# - 添加的图表系列点与 X 轴不同步

通过 IoC 容器实例化 WCF 服务