gpt4 book ai didi

影响客户的 WCF 契约(Contract)变更

转载 作者:行者123 更新时间:2023-12-02 15:25:42 27 4
gpt4 key购买 nike

我很好奇是否有人可以概述服务器端哪些类型的 WCF 合约(接口(interface))更改会破坏尝试发送消息的客户端,以及原因。我相信 WCF 可以处理某些差异,但我不确定您可以安全地更改哪些内容以及不能更改哪些内容。

  • 在操作合约中添加/删除参数?
  • 添加/删除/更改 DataContract 的序列化属性?
  • 在服务合约中添加/删除操作合约?

有 friend 在这里问了类似的问题:

Does adding a method to a WCF ServiceContract break existing clients?

编辑:正如 John Saunders 指出的那样,更改契约(Contract)通常不是一个好主意,但是内置的一些东西允许一定的版本容差(ExtensionDataObject 等?)。我只是想知道版本容差有多灵活。

最佳答案

查看 dasBlonde 上的这篇文章:Versioning WCF Service Contracts

它列出了哪些更改会破坏现有客户端:

  1. 删除操作
  2. 更改操作名称
  3. 删除操作参数
  4. 添加操作参数
  5. 更改操作参数名称或数据类型
  6. 更改操作的返回值类型
  7. 通过显式使用 .NET 属性或自定义序列化代码更改参数类型(数据协定)或操作(消息协定)的序列化 XML 格式
  8. 修改服务操作编码格式(RPC 编码与文档文字)

This article by Michele更详细地解释了如何设计更加灵活的契约(Contract)。

关于影响客户的 WCF 契约(Contract)变更,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/633090/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com