WCF消息合同版本控制

时间:2011-09-26 18:07:17

标签: wcf messagecontract

我想在我的 MessageContract 中添加一个新的 MessageBodyMember ,它引用一个新的 Datacontract

会有问题吗?。

处理邮件合同更改的最佳方法是什么?。

如何知道添加新的MessageBodyMember是破坏还是不破坏??

1 个答案:

答案 0 :(得分:4)

邮件合约版本控制在http://msdn.microsoft.com/en-us/library/ms730255.aspx处理:

  

有时,您可能需要更改邮件合同。例如,a   新版本的应用程序可能会为邮件添加额外的标头。   然后,当从新版本发送到旧版本时,系统必须   进入时处理额外的标题,以及丢失的标题   另一个方向。

     

以下规则适用于版本控制标头:

     
      
  • WCF不反对丢失的标题 - 相应的   成员保留其默认值。

  •   
  • WCF还会忽略意外的额外标头。一个例外   如果额外标头的MustUnderstand属性设置为,则此规则是   在传入的SOAP消息中为true - 在这种情况下,抛出异常   因为无法处理必须理解的标题。

  •   
     

邮件正文有类似的版本控制规则 - 缺少和   其他邮件正文部分将被忽略。

这意味着您可以添加和删除MessageBodyMembers,而不会破坏兼容性。更改成员类型时要小心。确保它们被平等序列化以保持兼容。