【问题标题】:SOAP: Different country - different state enum, same webservice interfaceSOAP:不同的国家 - 不同的国家枚举,相同的 Web 服务接口
【发布时间】:2014-08-22 05:58:57
【问题描述】:

我正在开发一个允许客户更改地址的 WCF SOAP Web 服务。目前我们有一些属性,他们可以根据一些简短的枚举来定义国家和州。

状态枚举目前仅包含澳大利亚各州,但现在我们打算也允许来自美国的地址,这导致比以前更多的州。 为了解决这个问题,我想出了以下三个解决方案,但它们似乎都不是那么棒,任何其他解决方案或至少一些优点/缺点将不胜感激:

1.将美国各州添加到现有枚举中

我们可以将额外的 50 个美国州添加到现有枚举中,并在检查所选州是否属于给定国家时添加一些验证。

2。为每个国家/地区的界面添加两个新枚举:AUSStates/USStates

我们可以在界面中添加两个新属性,允许为每个国家/地区选择一个州(USState 和 AUSState),然后根据给定的国家/地区选择州。我们将保留现有的 State 属性,以便当前用户不必更新他们的界面。

3.为美国添加新的接口/端点

我们可以添加一个新的 US 接口,该接口在 State 属性中提供 US States 枚举值,而不是使现有接口变脏。但这将不再允许在 AUS 界面中输入美国地址,反之亦然。

我们目前没有任何soap版本控制,我们将状态的值作为两个字母代码存储在数据库中,无论它属于哪个国家/地区都会进入同一列。

【问题讨论】:

  • 4) 将字段设为字符串,让用户输入任何她/他喜欢的内容。在服务器端验证。
  • 您必须为此使用字符串。实际上,USPS 寻址的“州”比 50 个合法州多,例如哥伦比亚特区、波多黎各、关岛等各个地区以及武装部队地址。假设,这个列表可能每年都在变化。当前列表:usps.com/send/official-abbreviations.htm

标签: c# wcf soap enums internationalization


【解决方案1】:

根据 cmets 中的 nvoigt 建议,我将其更改为字符串。这会导致界面更改不太好,但由于针对服务发布的 xml 对于枚举或字符串保持不变,因此我们的大多数集成商对此没有任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多