gpt4 book ai didi

wcf - 您在 WCF Web 服务中使用枚举类型吗?

转载 作者:行者123 更新时间:2023-12-03 07:09:23 25 4
gpt4 key购买 nike

我听到有些人说枚举是邪恶的,不应该在 Web 服务中使用,因为如果分配了某些值,或者如果枚举被标记为Flags属性。他们还表示,公开枚举的 Web 服务更难维护,但无法真正给我提供可行的论据。那么根据您的经验,在 WCF Web 服务中使用枚举的优点和缺点是什么?

最佳答案

人们建议在网络服务中避免使用枚举的原因是因为它们会产生微妙的向后兼容问题。

这同样适用于常规枚举,但在 Web 服务中,问题更加明显,特别是在 .NET 生成的代理中(见下文)。

  • 如果仅输入枚举,则没有问题。
  • 如果枚举可以是输出参数,那么如果您添加新元素并返回它,旧客户端可能会出现问题:
    • 如果客户端使用 .NET 生成的代理,它将在调用者可以处理它之前中断(在反序列化中)
    • 即使为代理生成的代码支持更改(例如,如果它将枚举映射到字符串),客户端中的用户代码也可能无法正确处理新的意外值(它很可能是从未执行过的路径)

通过将参数定义为字符串,您可以向 API 用户发出信号,表明该值将来可能会更改。即使您认为该值永远不会改变,做好准备也是一个很好的做法。

有一个good post作者:Dare Obasanjo 关于这个主题。

关于wcf - 您在 WCF Web 服务中使用枚举类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/326339/

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