上下文的WCF customheader或messagebody?

时间:2008-09-26 14:25:03

标签: c# wcf

我正在为客户提供WCF服务,以便将部件信息发送到我们的应用程序。我们有多个客户,这些客户将拥有一个或多个位置,并且部件信息的范围限定为客户的每个位置。当客户致电我们的服务时,他们需要指定位置。

我们考虑的选项是:

1)将位置ID放在自定义标头中。所有部件信息都适用于所有列出的地点。

2)将“context”节点添加到消息正文中。所有部件信息都适用于所有列出的地点。

3)在邮件正文中添加一个包含零件信息的位置节点。每个位置都有自己的零件清单。

我正在寻找最佳实践/标准帮助确定应该如何处理。我们还必须创建具有客户/位置范围的其他服务,并希望以一致的方式处理此问题。

3 个答案:

答案 0 :(得分:1)

我想说如果它只需要一两个操作,那就把它作为数据契约的一部分 - 有点像把它作为方法调用的参数。如果每个操作都需要它,请将它放在标题中,因为它与用户名,角色,租户或其他身份验证信息一样多 - 有点像您放在请求上下文中的内容(例如,HttpContext)。

答案 1 :(得分:0)

您需要使用邮件合同吗?我使用数据合同,除非我需要回流,所以一切都在最终。但是,即使对于消息合同,我也会将这些信息放在正文中,我倾向于为认证信息保留标题。

答案 2 :(得分:0)

我们计划发送一份回复,其中包含处理摘要信息以及有关无法处理的任何部分的详细信息。

消息合同包含一系列零件,零件在数据合同中定义。消息合同中还有一个标志来控制零件集合的处理。这可能是或可能不是这面旗帜的正确位置。